我有一个运行良好的以下选择查询
SELECT
division,
division_name,
object_account,
account_description,
Sum(value) AS PreferedSpend
FROM jde_dw.blanket_rpt
WHERE division = 02
AND vendor_type = 'PV'
AND month = 07
AND year = 2013
GROUP BY division, division_name, object_account, account_description
ORDER BY division
现在我想添加一个列,显示总支出与上面相同的查询但在where语句中没有vendor_type条件。
因此,最终查询将显示Division,division_name,Object_account,Account_Description,Value(首选)和值为(包括所有内容的总计)
我该怎么做?
答案 0 :(得分:1)
将条件移到SUM()
内,以便只有匹配的行才能得到总和:
SELECT
division,
division_name,
object_account,
account_description,
SUM(CASE WHEN vendor_type = 'PV' THEN value ELSE 0 END) as PreferedSpend,
SUM(value) AS TotalSpend
FROM jde_dw.blanket_rpt
WHERE division = 02
AND month = 07
AND year = 2013
GROUP BY division, division_name, object_account, account_description
ORDER BY division