Sql server 在sql server中,如何在最后7个日期后的2-2天内使用日期生成每日计数?

Sql server 在sql server中,如何在最后7个日期后的2-2天内使用日期生成每日计数?,sql-server,Sql Server,我正在为sql server中的get daily last 7 dates电子邮件计数创建一个查询。我编写了一个查询,但没有给出表的预期输出。现在只需给出最近7次约会的次数。下面写下我的疑问,告诉我哪里是我的错误 这是我的查询=> SELECT dateadd(day, T.i, CAST(GETDATE() AS DATE)) AS DateColumn, uf.TotalCount FROM (VALUES (-6), (-5), (-4), (-3), (-2), (-

我正在为sql server中的get daily last 7 dates电子邮件计数创建一个查询。我编写了一个查询,但没有给出表的预期输出。现在只需给出最近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

任何人都知道如何做到这一点,请告诉我。

如果您想要相同的计数值输出,请更改它

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

只是一个小小的调整dateaddday,T.i*3,getdate,但我认为您的计数值将被更改。在表03-06-2017 10计数和06-06-2017 05计数中,因此计数将是相同的获取或更改?@TriV仍然相同的o/p是否会出现其他浪潮?这将是不同的,因为您的where子句返回更多行您想要相同的o/p,然后只需更改select列值:解决方案的日期是come,但我的计数是错误的come,因此如何修复它apply子句是相同的,因此您的计数值不会更改。然后我改变了select列,我想它会工作的。你试过了吗?在apply子句中,你能编辑你的解决方案吗?请在2017年6月18日将你的解决方案放在表格中,50个计数可用,但这里得到0个计数这里Datediffday,InsertDateTime,dateaddday,T.i*3,getdate=0写入,然后计数查询中是真的谢谢triv的帮助