Раздел SQL с промежуточными итогами

0

Я пытаюсь найти способ решить следующую проблему:

Каждый месяц пользователи покупают товаров на сумму x $. За каждые приобретенные 2500 долларов они получают одну подарочную карту. Если в течение определенного месяца они не приобретают товаров на сумму 2500 долларов, купленная сумма переносится на следующий месяц и включается в общую купленную сумму.

Например: январь - купленная сумма 200 долларов. Это меньше 2500 долларов, поэтому 200 долларов перенесены на февраль Февраль - сумма покупки 600 долларов. 600 + 200 долларов меньше 2500 долларов, поэтому 800 долларов переносятся на март. Март - куплено 1900 долларов. Итак, 1900 $ + 800 $ = 2700 $. Получена 1 подарочная карта, и до апреля осталось 200 долларов.

Я хотел бы иметь возможность подсчитывать подарочные карты, заработанные за каждый месяц.

Спасибо

В моей таблице есть следующие столбцы: FiscalYear, FiscalMonth, Customer, AmountPurchased.

0
-- Total Gift Cards this month
,FLOOR
(
    ISNULL
    (
        SUM(AmountPurchased) OVER (PARTITION BY Customer ORDER BY FiscalYear, FiscalMonth)
        ,0
    ) / 2500
)
-- subtract Total Gift Cards last month
-
FLOOR
(
    ISNULL
    (
        SUM(AmountPurchased) OVER (PARTITION BY Customer
            ORDER BY FiscalYear, FiscalMonth ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING)
        ,0
    ) / 2500
) AS GiftCardsThisMonth