J'ai le code suivant qui présente les résultats dans un tableau avec plusieurs colonnes.SQL Server: somme de plusieurs sélections
SELECT
ref, design,
ISNULL((SELECT Sum(qtt) FROM bi(nolock) WHERE bi.ndos = 34 AND bofref like #1# AND bi.ref = temp.ref GROUP BY ref), 0) AS 'LPP',
ISNULL((SELECT Sum(qtt) FROM bi(nolock) WHERE bi.ndos = 28 AND bofref like #1# AND bi.ref = temp.ref GROUP BY ref), 0) AS 'LPM',
ISNULL((SELECT Sum(qtt) FROM bi(nolock) WHERE bi.ndos = 42 AND bofref like #1# AND bi.ref = temp.ref GROUP BY ref), 0) AS 'RNPM',
ISNULL((SELECT Sum(qtt) FROM bi(nolock) WHERE bi.ndos = 68 AND bofref like #1# AND bi.ref = temp.ref GROUP BY ref), 0) AS 'RAM',
ISNULL((SELECT Sum(qtt2) FROM bi(nolock) WHERE bi.ndos = 68 AND bofref like #1# AND bi.ref = temp.ref GROUP BY ref), 0) AS 'RA' ,
ISNULL((SELECT Sum(qtt) FROM bi(nolock) WHERE bi.ndos = 59 AND bofref like #1# AND bi.ref = temp.ref GROUP BY ref), 0) AS 'GD'
FROM
bi(nolock) temp
WHERE
(temp.ndos = 34 OR temp.ndos = 28 OR temp.ndos = 42 OR temp.ndos = 68)
AND temp.bofref LIKE #1#
AND temp.ref NOT LIKE ' '
GROUP BY
ref, design
ORDER BY
ref
Je veux maintenant résumer les valeurs de certains select dans une nouvelle colonne, par exemple, je voulais résumer dans une colonne totale des colonnes « PPPL, RNPM et RA », mais je ne suis pas en mesure de le faire fonctionner.
Comment cela peut-il être fait?
Supprimez les sous-requêtes et utilisez plutôt cas. Avoir comme dans où clause est comme tuer votre requête pour aucune raison. – Prathyush
Je ne connais pas d'autre moyen de le faire. # 1 # est une variable qui est écrite par l'utilisateur et peut être dans plusieurs formats comme xx.xxxx.xx ou xx.xxxx ou xx. et le code doit rechercher tous les résultats qui correspondent à la variable. – NelsonPaiva