Bonjour,
J'utilise actuellement la fonction DMin, qui ne peut être utilisée que sur une seule table. Or j'aimerais pouvoir avoir le même résultat sans avoir à ajouter dans une table les résultats de deux requêtes.
Je m'explique : voici mes deux requêtes, qui ajoutent toutes les deux des enregistrements à la table T_Sum :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 INSERT INTO T_Sum ( [Document achat], Poste, [Date livraison stat], SommeRgE, [Qté échéancée], Type, IdE ) SELECT T_OriginE.[Document achat], T_OriginE.Poste, T_OriginE.[Date livraison statistique], SumRangE([ID],[Date livraison statistique],[Document achat],[Poste]) AS SommeRgE, Replace([Quantité échéancée],".",",") AS [Qté éché], "E" AS Type, T_OriginE.ID FROM T_OriginE ORDER BY T_OriginE.[Document achat], T_OriginE.Poste, T_OriginE.[Date livraison statistique], T_OriginE.ID;J'obtiens donc une table T_Sum qui a cette allure :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 INSERT INTO T_Sum ( [Document achat], Poste, [Date livraison stat], SommeRgE, [Qté échéancée], Type ) SELECT T_OriginHC.[Document achat], T_OriginHC.Poste, T_OriginHC.[Date pièce], SumRangHC([ID],[Date pièce],[Document achat],[Poste]) AS SommeRgHC, T_OriginHC.[Quantité HC], "B" AS Type FROM T_OriginHC ORDER BY T_OriginHC.[Document achat], T_OriginHC.Poste, T_OriginHC.[Date pièce], T_OriginHC.ID;
Document achat; Poste; Type; Date livraison stat; SommeRgE; Qté échéancée; IdE
4500346129; 60; B; 14.05.2014; 5; 5;
4500346129: 60; B; 12.06.2014; 11; 6;
4500346129; 60; E; 02.05.2014; 7; 7; 1335
4500346129; 60; E; 14.05.2014; 12; 5; 1336
Ensuite j'utilise une requête nommée Q_DeliveryDate pour trouver, pour chaque ligne de type "E", les lignes de type "B" pour lesquelles la somme livrée (SommeRgE) est supérieure ou égale. La requête affiche alors la première "Date livraison stat" qui vérifie ce critère. Voici ma requête:
Voici le résultat de la requête pour la 3e ligne de mon exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT Nz(DMin("[Date livraison stat]","T_Sum","[SommeRgE] >= " & NumberUS([SommeRgE]) & " AND [T_Sum]![Document achat] = '" & [T_Sum]![Document achat] & "' AND [T_Sum]![Poste] = " & [T_Sum]![Poste] & " AND [T_Sum]![Type] = 'B'"),"Livraison incomplète") AS [Date pièce], T_Sum.SommeRgE, T_Sum.[Document achat], T_Sum.Poste, T_Sum.Type, T_Sum.[Date livraison stat], T_Sum.RangE, Nz(DMin("[Date livraison stat]","T_Sum","[SommeRgE] > " & NumberUS([SommeRgE]) & " - " & NumberUS([Qté échéancée]) & " AND [T_Sum]![Document achat] = '" & [T_Sum]![Document achat] & "' AND [T_Sum]![Poste] = " & [T_Sum]![Poste] & " AND [T_Sum]![Type] = 'B'"),"Pas encore livré") AS [Date Pièce Min], T_Sum.[Qté échéancée], T_Sum.IdE FROM T_Sum WHERE (((T_Sum.Type)="E") ORDER BY T_Sum.[Document achat], T_Sum.Poste, T_Sum.[Date livraison stat];
Date pièce; SommeRgE; Document achat; Poste; Type; Date livraison stat; Date Pièce Min; Qté échéancée; IdE
12.06.2014; 7; 4500346129; 60; E; 02.05.2014; 14.05.2014; 7; 1335
J'aimerai remplacer les fonctions DMin de ma requête Q_DeliveryDate par du code SQL qui me permettrait de travailler directement sur mes deux requêtes de départ et de ne pas avoir à créer une table T_Sum. Est-ce possible ? Pour l'instant je n'arrive même pas à trouver la jointure qui me permettrait d'avoir mon résultat .
Merci d'avance !
Partager