【发布时间】:2018-02-03 10:22:26
【问题描述】:
我有以下代码,它在一个包含几列的表中显示结果。
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
我现在想在一个新列中对某些选择的值求和,例如,我想在一个总列中对“LPP、RNPM 和 RA”列求和,但是我无法让它工作.
怎么做?
【问题讨论】:
-
删除子查询和用例。在 where 子句中有 like 就像无缘无故地杀死你的查询。
-
我不知道其他方法可以做到这一点。 #1# 是用户编写的变量,可以有多种格式,如 xx.xxxx.xx 或 xx.xxxx 或 xx。并且代码必须查找与变量匹配的所有结果。
标签: sql sql-server select sum