Champs complété selon des résultats d'autres champs
maguenard
Messages postés
18
Date d'inscription
Statut
Membre
Dernière intervention
-
maguenard Messages postés 18 Date d'inscription Statut Membre Dernière intervention -
maguenard Messages postés 18 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'aimerais savoir comment faire afin de mettre la valeur dans un champs d'une table selon les informations contenus dans un champs dans une autre table.
Ex: Le champs à compléter est le champs ETAT de la table CHANTIER. Les valeurs du champs ETAT sont les suivant:
OUVERT, si le champs VOLUME de la table SUIVI_HEBDO EST VIDE
EN COURS, si le champs VOLUME de la table SUIVI_HEBDO contient des données.
merci de me répondre
J'aimerais savoir comment faire afin de mettre la valeur dans un champs d'une table selon les informations contenus dans un champs dans une autre table.
Ex: Le champs à compléter est le champs ETAT de la table CHANTIER. Les valeurs du champs ETAT sont les suivant:
OUVERT, si le champs VOLUME de la table SUIVI_HEBDO EST VIDE
EN COURS, si le champs VOLUME de la table SUIVI_HEBDO contient des données.
merci de me répondre
A voir également:
- Champs complété selon des résultats d'autres champs
- Zuma gratuit télécharger complète - Télécharger - Jeux vidéo
- Resultats foot - Télécharger - Vie quotidienne
- Complete internet repair - Télécharger - Web & Internet
- Télécharger zuma revenge version complète gratuit pour pc - Télécharger - Jeux vidéo
- Télécharger nero 10 version complète gratuit - Télécharger - Lecture
3 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
En général, il est fortement déconseillé de faire comme tu l'envisages.
Au lieu d'avoir un champ ETAT dans la table CHANTIER, je suggère, quand tu as besoin de connaitre l'état du chantier, d'aller chercher la valeur de VOLUME dans la table SUIVI_HEBDO.
As-tu une raison particulière de ne pas faire comme je suggère?
Au lieu d'avoir un champ ETAT dans la table CHANTIER, je suggère, quand tu as besoin de connaitre l'état du chantier, d'aller chercher la valeur de VOLUME dans la table SUIVI_HEBDO.
As-tu une raison particulière de ne pas faire comme je suggère?
maguenard
Messages postés
18
Date d'inscription
Statut
Membre
Dernière intervention
L'utilisateur de la base de donnée veut que la valeur du champs ETAT se génère automatiquement selon des valeurs de d'autres champs.
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
1 584
Au lieu de laisser l'utilisateur aller consulter les tables de la base, tu pourrais lui afficher les informations via des requêtes. Et les requêtes pourraient automatiquement combiner la table CHANTIER avec la table SUIVI_HEBDO, sans que l'utilisateur sache de quelle table vient chaque information.
Il n'a pas besoin de consulter les tables, c'est lui qui saisie l'information dans différents formulaires et il veux connaître l'évolution des chantiers grâce au champs ETAT.
Tu cherches un moyen d'avoir dans la table CHANTIER un champ ETAT, automatiquement mis à jour en fonction de la table SUIVI_HEBDO.
Je suggère une autre approche : ne pas avoir de champ ETAT, et, chaque fois que tu souhaites utiliser ou afficher ETAT, l'évaluer en fonction de la table SUIVI_HEBDO.
Pour l'utilisateur, le résultat sera le même.
Je suggère une autre approche : ne pas avoir de champ ETAT, et, chaque fois que tu souhaites utiliser ou afficher ETAT, l'évaluer en fonction de la table SUIVI_HEBDO.
Pour l'utilisateur, le résultat sera le même.
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
Pour donner un exemple, j'ai modifié la requête RRapport_Hebdo, pour calculer Etat en fonction de TSuivi_Récolte.Vol_SEP:
C'est cela que tu cherchais?
SELECT DISTINCT TChantier.Nom_prop, TChantier.No_chantier, TSuivi_Récolte.Traitement, TSuivi_Récolte.Vol_SEP, TSuivi_Récolte.Vol_MEL_SCIE, TSuivi_Récolte.Vol_PET_SCIE, TSuivi_Récolte.Vol_PET_PATE, TSuivi_Récolte.Vol_BOP_SCIE, TSuivi_Récolte.Vol_CHAUFFAGE, TSuivi_Récolte.Date_, TSuivi_Récolte.Entrepreneur, TPlanification.[Taux ent SEP], TPlanification.[Taux ent MEL SCIE], TPlanification.[Taux ent PET SCIE], TPlanification.[Taux ent PET PATE], TPlanification.[Taux ent BOP SCIE], TPlanification.[Taux ent CHAUFFAGE], iif(TSuivi_Récolte.Vol_SEP=0,"OUVERT","EN COURS") as Etat FROM TChantier INNER JOIN (TPlanification LEFT JOIN TSuivi_Récolte ON (TPlanification.Traitement = TSuivi_Récolte.Traitement) AND (TPlanification.No_chantier = TSuivi_Récolte.No_chantier)) ON TChantier.No_chantier = TPlanification.No_chantier GROUP BY TChantier.Nom_prop, TChantier.No_chantier, TSuivi_Récolte.Traitement, TSuivi_Récolte.Vol_SEP, TSuivi_Récolte.Vol_MEL_SCIE, TSuivi_Récolte.Vol_PET_SCIE, TSuivi_Récolte.Vol_PET_PATE, TSuivi_Récolte.Vol_BOP_SCIE, TSuivi_Récolte.Vol_CHAUFFAGE, TSuivi_Récolte.Date_, TSuivi_Récolte.Entrepreneur, TPlanification.[Taux ent SEP], TPlanification.[Taux ent MEL SCIE], TPlanification.[Taux ent PET SCIE], TPlanification.[Taux ent PET PATE], TPlanification.[Taux ent BOP SCIE], TPlanification.[Taux ent CHAUFFAGE] HAVING (((TSuivi_Récolte.Date_)=[Écrire la période (ex: 16 au 22 octobre 2016)]));
C'est cela que tu cherchais?