Совокупный общий SQL Server - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь получить совокупный промежуточный итог, используя функцию LAG и SUM.Столбец, который я хочу суммировать, складывает строки 1 + 2 вместе, но не продолжает, добавляя строки 1, 2, 3, 4 и т. Д. Как только будет достигнута сумма «сброса», промежуточный итог должен быть возвращенк сумме сброса, умноженной на сумму Coinin в той же строке.

В конечном счете, я хочу знать в любой данный момент истории, насколько прогрессируют игровые автоматы для, скажем, уровней 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

1 Ответ

0 голосов
/ 24 мая 2018

Совокупная сумма рассчитывается с использованием sum(), а не lag().Предположительно, вы хотите что-то вроде этого:

sum(B.RateofProg/100.00 * A.Coinin/100.00) OVER (order by AID, BID, Level) as RunningTotal
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...