Sql 根据日期计算总和(当前,7天,…)
以下是我目前使用的表的示例:Sql 根据日期计算总和(当前,7天,…),sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,以下是我目前使用的表的示例: Date -------- Number -------Total 2012-03-28 3 158 2012-03-29 4 168 2012-04-08 2 256 2012-04-12 1 155.98 2012-04-14 6 2
Date -------- Number -------Total
2012-03-28 3 158
2012-03-29 4 168
2012-04-08 2 256
2012-04-12 1 155.98
2012-04-14 6 245.00
2012-04-20 10 156
2012-04-21 8 87
2012-04-26 3 158
2012-04-26 4 168
2012-04-29 2 256
2012-04-30 1 155.98
2012-05-02 6 245.00
2012-05-02 10 156
2012-05-02 8 87
我需要从中导出如下表:
Total ----- Current ----7Days----14Days
2451.96 1225.98 1869.96 1869.96
在这种情况下,总数为总和(Total),
当前日期是从今天(2013年2月5日)算起的-7天,因此它加上了从2013年2月5日到2013年4月25日的总和
7天是从今天起的-14天或从当前日期起的-7天。因此,它将2013年2月5日至2013年4月18日的总和相加
诸如此类。我不知道如何创建查询以获得7天的总和
请帮忙
SELECT SUM(Total) as 'Total',
SUM( CASE WHEN convert(varchar(11),Date,101) >= convert(varchar(11),GETDATE() - 7,101)
THEN Total ELSE 0 END) as 'Current',
SUM( CASE WHEN convert(varchar(11),Date,101) >= convert(varchar(11),GETDATE() - 14,101)
THEN Total ELSE 0 END) as '7Days' ,
SUM( CASE WHEN convert(varchar(11),Date,101) >= convert(varchar(11),GETDATE() - 28,101)
THEN Total ELSE 0 END) as '14Days'
FROM mytable
输出
TOTAL CURRENT 7DAYS 14DAYS
2451.96 1225.98 1468.98 2125.96
您可以将聚合函数与
大小写表达式一起使用,以获得结果:
select
sum(total) Total,
sum(case when date >= dateadd(d, -7, getdate()) then total end) [Current],
sum(case when date >= dateadd(d, -14, getdate()) then total end) [7Days],
sum(case when date >= dateadd(d, -21, getdate()) then total end) [14Days]
from yt;
看
如果您有更多的日期范围,那么您将添加更多的sum(case…
表达式