【发布时间】:2020-12-08 06:21:29
【问题描述】:
我想查询从今天开始的前 8 个季度。
示例:从今天开始的最后一个季度 = '2020-09-30',从今天开始的最后 8 个季度是'2018-10-01'。
我希望在查询结果中将前 8 个季度 ('2018-10-01') 标记为 Q1 而不是 Q4,因为它是 2018 年的第四季度。Q2 将是从 1 月开始的下一个季度- 2019 年 3 月等等。
有没有办法从开始日期算到当前日期?
我当前的查询:
SELECT
name,
Q1,
Q2,
Q3,
Q4,
Q5,
Q6,
Q7,
Q8,
FROM (SELECT distinct
s.custId,
sum(s.total) as total,
CAST('Q'+ Cast(DATEPART(QUARTER, s.purchaseDate)AS VARCHAR(1)) AS VARCHAR(2)) AS Quarterly,
c.name,
FROM sales s
LEFT OUTER JOIN customers c
ON c.id = s.custId
WHERE AND purchaseDate >= '2018-10-01'
AND purchaseDate <= '2020-09-30'
GROUP BY
s.custId) AS data
PIVOT ( SUM(total)
FOR quarterly IN ([Q1],
[Q2],
[Q3],
[Q4],
[Q5],
[Q6],
[Q7],
[Q8]) )AS pvt
ORDER by name
【问题讨论】:
标签: sql sql-server tsql