【发布时间】:2014-01-09 17:37:14
【问题描述】:
我需要一些帮助来理解代码中的某一行。代码获取 2010 年每个星期一的营业额,最后一行 in 将所有营业额汇总为一个。
代码如下:
SELECT
CASE
WHEN GROUPING (DATUM) = 1 THEN 'Gesamtumsatz'
ELSE CAST (DATUM AS VARCHAR (40))
END AS MONTAGSDATEN,
AVG (VERKAUFSWERT * VERKAUFSMENGE) as UMSATZ
FROM Data_Star_Awesome.dbo.VERKAUFSFAKTEN vk
INNER JOIN DIMDATUM dimD on vk.DATUMID=dimD.DATUMID
WHERE DATEDIFF(dd,0, DATUM)%7=0
AND JAHR = 2010
GROUP BY ROLLUP (DATUM)
我不明白的问题行如下:
WHERE DATEDIFF(dd,0, DATUM)%7=0
我所知道的是,它需要日期变量的天数,但我没有得到 %7=0 部分。 DATEDIFF 函数应该回馈所有的日子。这些天是否保存在 % 占位符中?以及如何使用7=0 获得所有星期一?
如果有人可以帮助我,那就太好了。
非常感谢:)
【问题讨论】:
-
您使用的是哪个 DBMS?
-
%是 mod 运算符。
标签: sql sql-server tsql datediff