我有一个简单的查询,返回两列ProjectName
和Amount
。我需要的是一个动态行作为最后一行Grand Total
及其图。
Project GRN Value
Prj 1 100000
Prj 2 200000
Prj 3 400000
------------------------
Grand Total 700000
Grand Total
应该是一个动态行,最后会自动嵌入GRN
值的总和。
答案 0 :(得分:3)
在GROUP BY
之后,您似乎需要WITH ROLLUPSELECT Project,
SUM(Value)
FROM Table
GROUP BY Project
WITH ROLLUP
答案 1 :(得分:3)
要获得总计行总数,您可以使用group by rollup(Project),在此总计行中使用grouping()重命名项目:
select
case
when grouping(Project) = 1 then 'Grand Total'
else Project
end as Project,
sum([GRN Value]) as [GRN Value]
from Table1
group by rollup(Project)
答案 2 :(得分:2)
是的,您可以使用简单的UNION
来实现此目的,因此计算SUM
的SQL语句将附加到结果集中:
SELECT Project, GRN_Value
FROM [YOUR_TABLE]
UNION ALL
SELECT 'Grand Total', SUM(GRN_Value)
FROM [YOUR_TABLE]
您可以使用详细here的ROLLUP
功能。