Sql server 他的。非常感谢你。加雷斯工作得很好。值得一提的是,这将它限制在最近一周,你知道我在过去12周内如何做到吗?@Taz它显示了最后一周,因为这是你的where谓词限制它的范围。更改where子句以适合您想要返回的内容。谢谢@SeanLange,但这不仅仅会扩大

Sql server 他的。非常感谢你。加雷斯工作得很好。值得一提的是,这将它限制在最近一周,你知道我在过去12周内如何做到吗?@Taz它显示了最后一周,因为这是你的where谓词限制它的范围。更改where子句以适合您想要返回的内容。谢谢@SeanLange,但这不仅仅会扩大,sql-server,Sql Server,他的。非常感谢你。加雷斯工作得很好。值得一提的是,这将它限制在最近一周,你知道我在过去12周内如何做到吗?@Taz它显示了最后一周,因为这是你的where谓词限制它的范围。更改where子句以适合您想要返回的内容。谢谢@SeanLange,但这不仅仅会扩大范围吗?我想要两行中的每一行有12个不同的日期,所以24行?当然这会扩大范围,这就是你想要的,对吗?但似乎你想按周分组,所以你需要相应地调整你的分组。有意义吗?是的,这就是我想要的,但我有点困惑我该怎么做。 SELECT Sender


他的。非常感谢你。加雷斯工作得很好。值得一提的是,这将它限制在最近一周,你知道我在过去12周内如何做到吗?@Taz它显示了最后一周,因为这是你的where谓词限制它的范围。更改where子句以适合您想要返回的内容。谢谢@SeanLange,但这不仅仅会扩大范围吗?我想要两行中的每一行有12个不同的日期,所以24行?当然这会扩大范围,这就是你想要的,对吗?但似乎你想按周分组,所以你需要相应地调整你的分组。有意义吗?是的,这就是我想要的,但我有点困惑我该怎么做。
SELECT 
    Sender, 
    DATEADD(dd, DATEDIFF(dd, 0, Date_Reported) / 7 * 7, 0) AS Weekdate, 
    COUNT(status) AS TranCount
FROM
    tx
WHERE 
    customer = 'ABC'
    AND DATEADD(dd, DATEDIFF(dd, 0, Date_Reported) / 7 * 7, 0) >= DATEADD(dd, DATEDIFF(dd, 0, GETDATE()) / 7 * 7, 0)
    AND DATEADD(dd, DATEDIFF(dd, 0, Date_Reported) / 7 * 7, 0) < DATEADD(dd, DATEDIFF(dd, 0, GETDATE()), 0) 
GROUP BY 
    Sender, DATEADD(dd,DATEDIFF(dd,0,Date_Reported)/7 * 7,0)
Sender            |  Weekdate      |  TranCount
AA                |    25/06/2018  |      33
"Not Sender AA"   |    25/06/2018  |      26
SELECT 
    Sender, 
    DATEADD(dd, DATEDIFF(dd, 0, Date_Reported) / 7 * 7, 0) AS Weekdate, 
    COUNT(status) AS TranCount
FROM
    tx
WHERE 
    sender = 'AA' and 
   customer = 'ABC'
    AND DATEADD(dd, DATEDIFF(dd, 0, Date_Reported) / 7 * 7, 0) >= DATEADD(dd, DATEDIFF(dd, 0, GETDATE()) / 7 * 7, 0)
    AND DATEADD(dd, DATEDIFF(dd, 0, Date_Reported) / 7 * 7, 0) < DATEADD(dd, DATEDIFF(dd, 0, GETDATE()), 0) 
GROUP BY 
    Sender, DATEADD(dd,DATEDIFF(dd,0,Date_Reported)/7 * 7,0)
union 
SELECT 
    'Not Sender AA', 
    DATEADD(dd, DATEDIFF(dd, 0, Date_Reported) / 7 * 7, 0) AS Weekdate, 
    COUNT(status) AS TranCount
FROM
    tx
WHERE 
    Sender <> 'AA' and
    customer = 'ABC'
    AND DATEADD(dd, DATEDIFF(dd, 0, Date_Reported) / 7 * 7, 0) >= DATEADD(dd, DATEDIFF(dd, 0, GETDATE()) / 7 * 7, 0)
    AND DATEADD(dd, DATEDIFF(dd, 0, Date_Reported) / 7 * 7, 0) < DATEADD(dd, DATEDIFF(dd, 0, GETDATE()), 0) 
GROUP BY 
    DATEADD(dd,DATEDIFF(dd,0,Date_Reported)/7 * 7,0)
SELECT 
    CASE Sender WHEN 'AA' THEN Sender ELSE 'Not Sender AA' END AS Sender, 
    DATEADD(dd, DATEDIFF(dd, 0, Date_Reported) / 7 * 7, 0) AS Weekdate, 
    COUNT(status) AS TranCount
FROM
    tx
WHERE 
    customer = 'ABC'
    AND DATEADD(dd, DATEDIFF(dd, 0, Date_Reported) / 7 * 7, 0) >= DATEADD(dd, DATEDIFF(dd, 0, GETDATE()) / 7 * 7, 0)
    AND DATEADD(dd, DATEDIFF(dd, 0, Date_Reported) / 7 * 7, 0) < DATEADD(dd, DATEDIFF(dd, 0, GETDATE()), 0) 
GROUP BY 
    CASE Sender WHEN 'AA' THEN Sender ELSE 'Not Sender AA' END, DATEADD(dd,DATEDIFF(dd,0,Date_Reported)/7 * 7,0)