2013-10-12 3 views
0

У меня есть запрос (ниже), который показывает мне данные в столбце «Ежемесячно».Совокупная сумма в sql-запросе

Result

, но мне нужно, чтобы переписать этот запрос для кумулятивных сумм, как показывает третий столбец на картинке. Как я могу это сделать? Спасибо за любой ответ.

Мой текущий запрос:

select cast((Prodej.Ce_Jedn * Prodej.Mnoz)/1000 as numeric(15,2)) as "Monthly" , 
     YEAR( FAV.vatDate) as "Rok" , 
     month(FAV.VatDate) as "Měsíc" 
from Prodej 
join FAKTVYDA FAV on FAV.Ci = PRODEJ.C_Fak 
       and FAV.Rada = PRODEJ.R_Fak 
where YEAR(FAV.VATDate) > year(getdate())-3 
    and FAV.Rada in ('10','20','30','60') 
    and PRODEJ.C_Fak <> 0 
    and '@{Stredisko.ParameterValue}' = case Prodej.Str 
             when '' then FAV.Str 
             when '-' then FAV.Str 
             else  Prodej.str 
             end 
order by month(FAV.VatDate) 
+1

http://www.sqlperformance.com/2012/07/t-sql-queries/running-totals –

+1

Возможный дубликат [Рассчитать текущий общий/текущий баланс] (http://stackoverflow.com/questions/11310877/calculate-running-total-running-balance) –

+0

См. статью CodeProject: http://www.codeproject.com/Articles/300785/Calculating-simple-running-totals-in-SQL-Server Существует несколько способов: сделай это. –

ответ

-1

можно достичь, используя SUM заявление перед полем вы хотите кратко. См. Сообщение this, в котором содержится решение, которое должно соответствовать вашей проблеме.

select cast((Prodej.Ce_Jedn * Prodej.Mnoz)/1000 as numeric(15,2)) as "Monthly" , 
YEAR( FAV.vatDate) as "Rok" , 
month(FAV.VatDate) as "Měsíc" 
SUM((Prodej.Ce_Jedn * Prodej.Mnoz)/1000 as numeric(15,2)) as "Cumulative" 
from Prodej 
join FAKTVYDA FAV on FAV.Ci = PRODEJ.C_Fak 
and FAV.Rada = PRODEJ.R_Fak 
where YEAR(FAV.VATDate) > year(getdate())-3 
and FAV.Rada in ('10','20','30','60') 
and PRODEJ.C_Fak <> 0 
and '@{Stredisko.ParameterValue}' = case Prodej.Str 
when '' then FAV.Str 
when '-' then FAV.Str 
else  Prodej.str 
end 
order by month(FAV.VatDate) 

Надежда, что помогает,

Chris

+0

И почему это происходит? –

+0

Возможно, потому что это похоже на ответ только для ссылок? (Я не проголосовал за вас.) Вы можете отредактировать свой ответ и добавить дополнительные сведения. Просто мысль. –

+0

Pretty lame в моей книге, ни один из других ответов не отличается. –

0

При использовании SUM-заявление, запрос также требует GROUP BY-заявление. Это не включено в запрос выше, поэтому он не будет работать.

Смежные вопросы