Bonjour à tous,
Je suis sûr que cela va vous paraître simpliste et peut-être instultant (auquel cas je m'en excuse) mais je bloque sur un problème qui bien qu'il semble tout bête, reste un problème pour mes compétences actuelles en SQL.
Voici deux requêtes :
Requête 1
Requête 2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT CT_Num, ROUND(SUM(DL_MontantHT),0) FROM F_DOCLIGNE WITH(NOLOCK) WHERE CAST(DO_Date As DATE) BETWEEN '01/06/2018' AND '30/06/2018' AND DO_Type IN ('3','4','6','7') GROUP BY CT_Num
Je voudrais le plus simplement du monde soustraire le résultat de la deuxième requête à la première soit Requête 1 - Requête 2, pour chaque CT_Num donc obtenir :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT CT_Num, ROUND(SUM(DL_MontantHT),0) FROM F_DOCLIGNE WITH(NOLOCK) WHERE CAST(DO_Date As DATE) BETWEEN '01/06/2018' AND '30/06/2018' AND DO_Type IN ('4','5') GROUP BY CT_Num
CT_Num | Requête1-Requête2
CT_Num | Requête1-Requête2
ETC.
J'ai tenté différentes approches et recherches sans résultats, je me tourne donc vers vous.
Dernière tentative :
J'obtiens : "Syntaxe incorrecte vers 'USING'."
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT CT_Num, e.MontantVente - COALESCE(s.MontantVente, 0) FROM (SELECT CT_Num, ROUND(SUM(DL_MontantHT),0) AS MontantVente FROM F_DOCLIGNE WITH(NOLOCK) WHERE CAST(DO_Date As DATE) BETWEEN '01/06/2018' AND '30/06/2018' AND DO_Type IN ('3','4','6','7') GROUP BY CT_Num) AS e LEFT JOIN (SELECT CT_Num, ROUND(SUM(DL_MontantHT),0) As MontantVente FROM F_DOCLIGNE WITH(NOLOCK) WHERE CAST(DO_Date As DATE) BETWEEN '01/06/2018' AND '30/06/2018' AND DO_Type IN ('4','5') GROUP BY CT_Num) AS s USING(CT_Num)
Merci d'avance pour vos éventuelles réponses.
Cordialement.
Partager