Champs complété selon des résultats d'autres champs
maguenard
Messages postés
18
Statut
Membre
-
maguenard Messages postés 18 Statut Membre -
maguenard Messages postés 18 Statut Membre -
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
3 réponses
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
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? -
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. -
-
-
-
-
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
Pour donner un exemple, j'ai modifié la requête RRapport_Hebdo, pour calculer Etat en fonction de TSuivi_Récolte.Vol_SEP: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?