我想在日期介于最大日期减去7和最大日期之间的SQL案例中进行求和,但是无法使其正确。
实施例: sum( date 之间的最大值(日期来自字段) - 7和max(日期来自字段)然后列到sum < / em> else 0 end)as&#39; 0-7 Days&#39;
答案 0 :(得分:1)
This may work:
我可能会对DATEDIFFs感到有些困惑,但它应该是那些行
SUM(CASE
WHEN DATEDIFF(DAY,datecolumn,DATEADD(DAY,-7,max(datecolumn)))<0 AND DATEDIFF(DAY,datecolumn,max(datecolumn))>0
THEN columntosum
ELSE 0
END) AS '0-7 Days'
答案 1 :(得分:1)
在大多数数据库中,您可以执行以下操作:
select (case when datecol >= maxdatecol - 7 and datecol <= maxdatecol then columntosum else 0
end) as days_0_7
from (select t.*,
max(datecol) over () as maxdatecol
from table t
) t;
请注意,日期算术因数据库而异,因此这种确切的语法可能不起作用(小修改应解决大多数数据库的问题)。