与 SQL 服务器汇总汇总 - 但只有最后一个摘要?

2022-01-09 00:00:00 sum sql-server-2008 sql-server rollup

我有这个问题:

DECLARE @t TABLE(NAME NVARCHAR(MAX),datee date,val money)

insert INTO @t SELECT 'a','2012-01-02',100
insert INTO @t SELECT 'a','2012-01-02',100
insert INTO @t SELECT 'a','2012-01-03',100
insert INTO @t SELECT 'a','2012-01-05',100
insert INTO @t SELECT 'b','2012-01-06',200
insert INTO @t SELECT 'b','2012-01-07',200
insert INTO @t SELECT 'd','2012-01-07',400
insert INTO @t SELECT 'e','2012-01-09',500
insert INTO @t SELECT 'f','2012-01-12',600

SELECT  Name,datee,SUM (val) 
from @t GROUP BY NAME ,datee 

目前的结果是:

但我需要在末尾添加 sum.所以我尝试了汇总:

BUT I need to add sum at the end. So I tried with rollup:

 SELECT  Name,datee,SUM (val) 
    from @t GROUP BY NAME ,datee  with ROLLUP

但我只需要 last 总和行.我不需要 in-report sum's

BUT I only need the last sum total line. I don't need the in-report sum's

那么怎么才能得到想要的结果呢?

So how can get the desire result?

(我无法更改 group by 子句,因为其他人也需要它,我只想在有/没有汇总的情况下添加总和).

(I cant change the group by clause cause others need it also , I just want to add sum at the end with/without rollup).

sql在线来了

推荐答案

GROUPING SETS 可以,试试这个:

SELECT  Name,datee,SUM (val) 
FROM    @t 
GROUP BY 
        GROUPING SETS((NAME ,datee), ())

SQL 小提琴

相关文章