Финансовый год и финансовый квартал

У меня есть таблица, в которой я храню даты заказа YYYY-MM_DD.

Как создать финансовый год и финансовый квартал со следующими требованиями: Финансовые годы:

  1. дата начала для Fiscal_Year_2000 - 01.07.1999 и заканчивается 31.06.2000.
  2. дата начала для Fiscal_year_2001 - 01.07.2001, окончание - 31.06.2001.

Фискальные кварталы:

  1. Fiscal_Quarter_1, например, 2000 финансовый год начинается с 1 июля 1999 г. и заканчивается 31 сентября 1999 г.
  2. FQ2, FQ3, FQ4 за 2000 финансовый год
  3. FQ1 / 2/3/4 на 2001 финансовый год

Я пытался

WHERE  OrderDate BETWEEN '1999-07-01' and '2001-06-31'
DATEADD (month,7,OrderDate) AS [OrderDateNew],
DATEPART(Year, [OrderDateNew]) as [FY], 
DATEPART(QUARTER, dateadd(month,3,[OrderDateNew])) as [FQ]

Я получаю очень странные результаты. Любая помощь высоко ценится.

Результат должен быть примерно таким:

FY     FQ   Some other data columns of products, sales etc
2000   1
2000   2
2000   3
2000   4
2001   1
2001   2
2001   3
2001   4

person user14496743    schedule 22.10.2020    source источник


Ответы (1)


Просто добавьте шесть месяцев и используйте год. Например, если вы хотите получить 2000 финансовый год:

where year(dateadd(month, 6, orderdate)) = 2000

Если вам нужен финансовый год и квартал, используйте ту же идею:

select year(dateadd(month, 6, orderdate)) as fyear,
       datepart(quarter, dateadd(month, 6, orderdate)) as fquarter
person Gordon Linoff    schedule 22.10.2020
comment
почему мы добавляем 6, а не 7 выше? - person user14496743; 22.10.2020
comment
1999-07-01 + 6 месяцев = 2000-01-01, с которого начнется ваш 2000 финансовый год - person Richard Hubley; 22.10.2020