我正在try 获取按星期几进行格式化的一周销售额,问题是我的查询行为与正常的Sum()
一样,忽略了同一天的不同周的销售额.在示例数据库中,我在两个不同的星期和一周的同一天插入了两个不同的销售额,结果是单行为38.92,而不是两个行,其中的销售额与该星期的那一天一致.
这是我正在使用的查询:
SELECT
CASE WHEN weekdays = 1 THEN Total_Sales ELSE 0 END as Sunday,
CASE WHEN weekdays = 2 THEN Total_Sales ELSE 0 END as Monday,
CASE WHEN weekdays = 3 THEN Total_Sales ELSE 0 END as Tuesday,
CASE WHEN weekdays = 4 THEN Total_Sales ELSE 0 END as Wednesday,
CASE WHEN weekdays = 5 THEN Total_Sales ELSE 0 END as Thursday,
CASE WHEN weekdays = 6 THEN Total_Sales ELSE 0 END as Friday,
CASE WHEN weekdays = 7 THEN Total_Sales ELSE 0 END as Saturday
FROM
(SELECT
DATEPART(WEEKDAY, date) AS Weekdays,
SUM(sales) AS Total_Sales
FROM Sales
WHERE CAST(Date AS date) BETWEEN '2023-03-01' AND '2023-03-10'
GROUP BY DATEPART(weekday, Date)) X
当前结果:
Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday |
---|---|---|---|---|---|---|
30.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
0.00 | 6.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 38.92 | 0.00 |
0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 40.55 |
-你想要什么?
Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday |
---|---|---|---|---|---|---|
30.00 | 0.00 | 0.00 | 0.00 | 0.00 | 13.84 | 0.00 |
0.00 | 6.00 | 0.00 | 0.00 | 0.00 | 25.08 | 0.00 |
0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 40.55 |
Dbfiddle示例:https://dbfiddle.uk/r-Qg8JDT