微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQL 需要选定周的天数作为列

如何解决SQL 需要选定周的天数作为列

我目前需要进行一个查询,该查询在一周之间的所有天数都基于一周返回,但我需要将它们用作列,以便我可以在该周每天使用行,我举了一个例子,我在这里找到在论坛上


;WITH TestData(N,Order_Date,Net_Amount) AS (
    SELECT 1 N,CAST(GETDATE() AS DATE) Order_Date,RAND() * 100 Net_Amount
    UNION ALL
    SELECT N+1 N,CAST(GETDATE()-N/5 AS DATE) Order_Date,RAND(CHECKSUM(NEWID())) * 100 Net_Amount FROM TestData
    WHERE N < 20
    )
SELECT TestData.Order_Date,TestData.Net_Amount INTO #Order FROM TestData


SET DATEFirsT 1
;WITH Days(N,DayOfTheWeek)  AS (
    SELECT 1 N,DATEADD(DAY,1-DATEPART(WEEKDAY,GETDATE()),CONVERT(DATE,GETDATE())) DayOfTheWeek
    UNION ALL
    SELECT N+1 N,1,DayOfTheWeek) DayOfTheWeek FROM Days
    WHERE N < 7
)
SELECT d.DayOfTheWeek,SUM(Net_Amount) TotalAmount 
FROM Days d
LEFT JOIN #Order ON d.DayOfTheWeek = Order_Date
GROUP BY d.DayOfTheWeek

这是我的最终结果

1

但我需要在列而不是行中显示星期几

预期结果

3

感谢您的帮助

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。