Я пытаюсь получить совокупный промежуточный итог, используя функцию LAG и SUM. Столбец, который я хочу суммировать, добавляет строки 1 + 2 вместе, но он не продолжается, добавляя строки 1, 2, 3, 4 и т. д. После того, как будет достигнута сумма «сброса», промежуточный итог должен вернуться к сумме сброса, умноженной на сумму монет в той же строке.
В конечном счете, я хочу знать в любой конкретный момент истории, сколько стоит прогресс в игровых автоматах, скажем, для уровней 1 и 2 до и после выплаты джекпота. (Этот запрос просто смотрит на уровень 1)
Select Distinct A.AID
,A.BID
,B.Level
,A.Date
,B.Reset
,B.Cap
,Description
,B.RateofProg
,A.Coinin
,LAG(B.RateofProg/100.00 * A.Coinin/100.00) OVER (order by AID, BID, Level) + SUM(B.RateofProg/100 * A.Coinin/100) as RunningTotal
,CASE When C.Eventcode = 10004500 THEN ProgressivePdAmt/100.00 Else 0 end as ProgressivePdAmt
From Payout A
Join Slot_Progression B
on A.Mnum = B.Mnum
Join Events C
on A.Date = C.Date
Where A.Mnum = '102026'
and level = '1'
and A.Coinin > '0'
Group by A.AID, A.BID, B.Level, A.Date, B.Reset, B.Cap, Description, C.ProgressivePdAmt, B.RateofProg, A.Coinin, C.Eventcode
Order by AID, BID, Level