gpt4 book ai didi

sql-server-2008 - SQL 添加一周的总和行并在末尾添加总计

转载 作者:行者123 更新时间:2023-12-03 23:36:32 25 4
gpt4 key购买 nike

我有一个表,其中包含 numberofCalls、Date、CallsNotRecieved 等列。

我需要一种方法来获取一个月的记录,但在每个星期六结束时我必须显示周总数,毕竟我必须显示该月的总计。

它在 SQL Server 中可行吗?有什么帮助吗?

最佳答案

你应该给我们更多关于数据结构的信息。假设您的 [Date]列的类型为 datetime ,并且您希望所有日期/周总计/月总计在一列中:

set datefirst 7

select
case
when grouping(cast(datepart(week, [Date]) as varchar(255)))=1 then '<monthtotal>'
when grouping(cast([Date] as date))=1 then '<weektotal>'
else cast(cast([Date] as date) as varchar(255))
end as Period
,CallsNotRecieved = sum(CallsNotRecieved)
,NumberOfCalls = sum(numberofCalls)
from <yourtable>
group by
grouping sets(
(cast(datepart(month, [Date]) as varchar(255)), cast(datepart(week, [Date]) as varchar(255)),cast([Date] as date)),
(cast(datepart(month, [Date]) as varchar(255)), cast(datepart(week, [Date]) as varchar(255))),
(cast(datepart(month, [Date]) as varchar(255)))
)

你可以在没有 set datefirst 的情况下弄清楚如何做到这一点, 插入周/月数而不是 weektotal 和 monthtotal,并确保使用 order by grouping() 对数据集进行排序, 和 order by [Period]

编辑:在 sql server 2005 中,因为没有 grouping sets , 必须使用 WITH ROLLUP (或更糟 - WITH CUBE )子句,然后用 grouping(<column_name>)=1 过滤掉不需要的分组组合

关于sql-server-2008 - SQL 添加一周的总和行并在末尾添加总计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17102334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com