如何解决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
这是我的最终结果
但我需要在列而不是行中显示星期几
预期结果
感谢您的帮助
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。