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 (将#修改为@)