Bonjour,
Je dois rechercher les commandes non réceptionnées et les détails de commande associées.
Quel est parmi les deux solutions suivantes, celle qui vous semble la plus performante:
Solution 1:
J'utilise une vue donnant les commandes dont tous les produits n'ont pas été réceptionné et ensuite dans chacune des requête je filtre selon le client.
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 CREATE VIEW V_CDE_NONRECEPTION AS SELECT CDE_ID, CDE_REF, STE_ID, CDE_CLI_REF, CDE_DATE, CDE_RETOUR_PREVUE FROM T_COMMANDE_CDE CDE INNER JOIN V_CDE_DTL DTL ON CDE.CDE_ID = DTL.CDE_ID WHERE DTL.LIG_CDE_QUTE_RCP < DTL.LIG_CDE_QUTE
Requête pour la sélection des commandes:
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT CDE_ID, CDE_REF, STE_ID, CDE_CLI_REF, CDE_DATE, CDE_RETOUR_PREVUE FROM V_CDE_NONRECEP WHERE STE_ID = @STE_ID
Requête pour la sélection des détails de commandes:
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT LIG_CDE_ID, LIG_CDE_QUTE, DTL.CDE_ID, PDT_ID, PDT_REF, LIG_CDE_QUTE_RCP FROM V_CDE_DTL DTL INNER JOIN V_CDE_NONRECEP CDE ON CDE.CDE_ID = DTL.CDE_ID WHERE CDE.STE_ID = @STE_ID
Solution 2:
Idem que précédemment mais je n'utilise pas la vue de sélection des commande non réceptionnées.
Requête pour la sélection des commandes:
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT CDE_ID, CDE_REF, STE_ID, CDE_CLI_REF, CDE_DATE, CDE_RETOUR_PREVUE FROM T_COMMANDE_CDE CDE INNER JOIN V_CDE_DTL DTL ON CDE.CDE_ID = DTL.CDE_ID WHERE DTL.LIG_CDE_QUTE_RCP < DTL.LIG_CDE_QUTE AND STE_ID = @STE_ID
Requête pour la sélection des détails de commandes:
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 SELECT LIG_CDE_ID, LIG_CDE_QUTE, DTL.CDE_ID, PDT_ID, PDT_REF, LIG_CDE_QUTE_RCP FROM V_CDE_DTL DTL WHERE CDE_ID IN ( SELECT CDE_ID FROM T_COMMANDE_CDE CDE INNER JOIN V_CDE_DTL DTL ON CDE.CDE_ID = DTL.CDE_ID WHERE DTL.LIG_CDE_QUTE_RCP < DTL.LIG_CDE_QUTE AND STE_ID = @STE_ID)
Merci pour vos réponses.
Bye
Partager