【发布时间】:2017-06-21 09:22:51
【问题描述】:
我正在尝试在 MS SQL 上完成汇总,以便我的列“DET”在最后一行有一个完整的总和。 Arrive 列包含字符,所以如果可能的话,我只是试图让该列中的总行为 NULL。当我做Group by Date, DET, Arrive with Rollup 时,它会进行小计,将每个日期的总数相加(如果可能的话,我不想要)。
Select Date = isnull(Date,'Total'), DET, Arrive = isnull(Arrive, 'Total') from
(select convert(VARCHAR, EventDate1, 112) as Date,
sum(CASE WHEN Depart = 'DET' and (ETStatus = 'F' or ETStatus = 'L' or ETStatus = 'C') THEN 1 ELSE 0 END) as DET, Arrive
from TicketCoupons
where EventDate1 >= '20160601' and EventDate1 <= '20160709'
group by convert(VARCHAR, EventDate1, 112), Arrive
)mytable
where PIT > '0'
group by Rollup(Date), DET, Arrive
order by Date
另外,我是 SQL 新手,我知道我的代码可能杂乱无章,所以我提前道歉。感谢您的帮助!
【问题讨论】:
-
能否添加示例数据和预期结果
标签: sql-server rollup