Продажи за текущие 12 месяцев по сравнению с предыдущими 12 месяцами — скользящие

Я все еще новичок в SQL

Столбцы моей таблицы: InDate, Sales

Я хочу сравнить продажи за последние 12 месяцев с СЕГОДНЯ по ПРОШЛЫЕ 12 МЕСЯЦЕВ.

Что мне нужно:

Current Month | Sale |  Past Month | Sale
Nov           | $550 |  Nov         | $450

Я могу получить текущие 12 скользящих месяцев, используя этот запрос:

SELECT SO_VInv.InvDate
FROM SO_VInv
where SO_VInv.InvDate >= DATEADD(month, -12, GETDATE())

Я могу получить текущие 24 скользящих месяца, используя этот запрос:

SELECT SO_VInv.InvDate
FROM SO_VInv
where SO_VInv.InvDate >= DATEADD(month, -24, GETDATE())

Но я не знаю, как пройти через 12 месяцев, например. С 11.02.2017 по 11.02.2018 в течение последних 12 месяцев, а не с фиксированной датой.


person Jawwad Patel    schedule 02.12.2019    source источник
comment
Отметьте свой вопрос с помощью базы данных, которую вы используете. Примеры данных также могут помочь.   -  person Gordon Linoff    schedule 02.12.2019


Ответы (1)


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

SELECT i.InvDate,
       i.sale,
       SUM(i.sale) OVER (ORDER BY i.InvDate
                         ROWS BETWEEN 11 PRECEDING AND CURRENT ROW
                        ) as sales_rolling_12
FROM SO_VInv i;
person Gordon Linoff    schedule 02.12.2019
comment
Спасибо, нет, у меня много продаж в месяц. Я хочу суммировать и сравнивать продажи по месяцам за 12 месяцев и за последние 12 месяцев - person Jawwad Patel; 02.12.2019