Bonjour à tous les 2
Philippe j'ai testé votre idée, j'ai supprimé la relation entre chantier et T_liste_lot pour la créer directement avec T_site
quand je crée un site, je choisis donc à chaque fois sa liste de lots
Malheureusement j'obtiens toujours le même résultat. J'ai dû mal à saisir ce que fait access, donc je dois m'y prendre mal
Je fais une première requête afin d'avoir tous les lots en prenant dans la table site son id_site, id_liste_lot, et dans la table lots l'id_lot et le libellé. Ce qui me donne donc tous les lots pour tous les sites:
Dans une nouvelle requête j'associe la table T_contrat_site et T_contrat_site_lot, T_lot pour avoir les lots utilisés. Je peux les distinguer car les lots traités sont obligatoirement liés à un montant non null (ceci pour reprendre l'idée de Micniv d'ajouter un champ "terminé", je pense que montant ht peut remplir ce rôle non ?)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT T_SITE.ID_CHANTIER, T_SITE.ID_SITE, T_SITE.SITE, T_SITE.ID_LISTE_LOT, T_LOT.ID_LOT, T_LOT.LIBELLE_LOT FROM (T_LISTE_LOT INNER JOIN T_LOT ON T_LISTE_LOT.ID_LISTE_LOT = T_LOT.N°LISTE) INNER JOIN T_SITE ON T_LISTE_LOT.ID_LISTE_LOT = T_SITE.ID_LISTE_LOT ORDER BY T_SITE.ID_CHANTIER, T_SITE.ID_SITE;
J'associe ces deux requetes dans une nouvelle en les liant via id_lot :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT T_CONTRAT_SITE.ID_SITE, T_CONTRAT_SITE_LOT.ID_LOT, T_CONTRAT_SITE_LOT.MONTANT_HT FROM T_LOT RIGHT JOIN (T_CONTRAT_SITE LEFT JOIN T_CONTRAT_SITE_LOT ON T_CONTRAT_SITE.ID_CONTRAT_SITE = T_CONTRAT_SITE_LOT.ID_CONTRAT_SITE) ON T_LOT.ID_LOT = T_CONTRAT_SITE_LOT.ID_LOT;
Mais chaque lot utilisé est associé à chacun des sites qui composent le chantier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT R_TOUS_LES_LOTS.ID_SITE, R_TOUS_LES_LOTS.SITE, R_TOUS_LES_LOTS.LIBELLE_LOT, T_CONTRAT_SITE_LOT.ID_LOT FROM R_TOUS_LES_LOTS LEFT JOIN T_CONTRAT_SITE_LOT ON R_TOUS_LES_LOTS.ID_LOT = T_CONTRAT_SITE_LOT.ID_LOT GROUP BY R_TOUS_LES_LOTS.ID_SITE, R_TOUS_LES_LOTS.SITE, R_TOUS_LES_LOTS.LIBELLE_LOT, T_CONTRAT_SITE_LOT.ID_LOT;
Est ce que cela pourrait provenir de la présence de la T_liste_lot ?
Je ne comprends pas pourquoi vous dites que la T_contrat_site_lot on a tous les lots d'un site ? On n'a que ceux qui ont été traités, ou je comprends mal ?
Qu'est qu'un booleen ?
Merci de votre aide
Isabelle
Partager