我在sql server中为每日获取最后7个日期的电子邮件计数创建一个查询。我写了一个查询,但没有给出表的预期输出。现在只是在最近7个日期给出计数。在下面写下我的查询并告诉我我的错误在哪里。
这是我的查询=>
SELECT dateadd(day, T.i, CAST(GETDATE() AS DATE)) AS DateColumn, uf.TotalCount
FROM (VALUES (-6), (-5), (-4), (-3), (-2), (-1), (0)) AS T(i)
OUTER APPLY
(
SELECT Count(InsertDateTime) AS TotalCount
FROM Email
WHERE Datediff(day,InsertDateTime, dateadd(day, T.i, getdate())) = 0
) uf
This is my o/p=>
DateColumn | Count
15-06-2017 10
16-06-2017 05
17-06-2017 20
18-06-2017 10
19-06-2017 30
20-06-2017 50
21-06-2017 40
This is my Expected output =>
DateColumn | Count
03-06-2017 10
06-06-2017 05
09-06-2017 20
12-06-2017 10
15-06-2017 30
18-06-2017 50
21-06-2017 40
任何人都知道怎么做才能告诉我。
答案 0 :(得分:1)
如果您想要相同的计数值输出,请更改它。
SELECT dateadd(day, T.i * 3, CAST(GETDATE() AS DATE)) AS DateColumn, uf.TotalCount
FROM (VALUES (-6), (-5), (-4), (-3), (-2), (-1), (0)) AS T(i)
OUTER APPLY
(
SELECT Count(InsertDateTime) AS TotalCount
FROM Email
WHERE Datediff(day,InsertDateTime, dateadd(day, T.i * 3, getdate())) = 0
) uf