Я использую SQL Server 2014, и у меня есть следующий запрос T-SQL:
SELECT
[Date],
(CASE
WHEN [Date] BETWEEN '2016-07-01' AND '2017-06-30' THEN 'FY 16-17'
WHEN [Date] BETWEEN '2017-07-01' AND '2018-06-30' THEN 'FY 17-18'
WHEN [Date] BETWEEN '2018-07-01' AND '2019-06-30' THEN 'FY 18-19'
ELSE 'Not Stated'
END) AS [Period]
FROM
DateDimension
WHERE
[Date] BETWEEN '2016-07-01' AND '2019-06-30'
Вывод выглядит следующим образом (извлечение):
Date Period
-----------------------
2016-07-01 FY 16-17
2016-07-02 FY 16-17
2016-07-03 FY 16-17
... ...
2017-07-01 FY 17-18
2017-07-02 FY 17-18
2017-07-03 FY 17-18
... ...
2018-07-01 FY 18-19
2018-07-02 FY 18-19
2018-07-03 FY 18-19
... ...
Я хочу добавитьновый столбец для вывода следующий:
Date Period Day
-------------------------------
2016-07-01 FY 16-17 D1
2016-07-02 FY 16-17 D2
2016-07-03 FY 16-17 D3
... ... ...
2017-07-01 FY 17-18 D1
2017-07-02 FY 17-18 D2
2017-07-03 FY 17-18 D3
... ... ...
2018-07-01 FY 18-19 D1
2018-07-02 FY 18-19 D2
2018-07-03 FY 18-19 D3
... ... ...
Чтобы отметить, что D1
начинается снова в начале каждого нового финансового года (то есть 2016-07-01
, 2017-07-01
и 2018-07-01
).
Как написать код SQL для этого нового столбца?
Дополнительное примечание: D1
должно быть непрерывным до конца каждого финансового года.Например, от 2016-07-01
до 2017-06-30
, столбец Period
будет показывать D1, D2, ..., D365)