
Ms Sql Računanje razlike


Treba ti SELECT OVER clause u obliku drugog upita iz primjera za kumulativni total.
SQL Fiddle za MSSQL ne radi ovih dana pa evo code snippeta
create table tbl(mjesec int, vrsta char(1), prihod int, rashod int)
insert into tbl(mjesec, vrsta, prihod, rashod)
values (1, 'A', 10000, 20000),
(1, 'A', 1000, 2000),
(2, 'A', 100, 200),
(2, 'B', 10, 20),
(3, 'C', 1, 2)
select mjesec,
sum(sum_prihod) over (order by mjesec) as kumulativ_prihod,
sum(sum_rashod) over (order by mjesec) as kumulativ_rashod
from (
select mjesec, sum(prihod) as sum_prihod, sum(rashod) as sum_rashod
from tbl
group by mjesec
) as kumulativ
order by mjesec
Rezultat:
mjesec kumulativ_prihod kumulativ_rashod
--------------------------------------------
1 11000 22000
2 11110 22220
3 11111 22222

Prvo hvala na pomoći. Očito se tu ima još mnogo za učiti. Pokušao sam prilagoditi primjer onom što meni treba ... ali ne ide.
Ovo je par linija naredbi na temelju tvog primjera gdje pitam da se za sada izračuna samo prihod. Napominjem prihod i rashod se pohranjuju u jednoj koloni a na temelju kategorije (u posebnoj koloni) se određuje o kakvoj transakciji je riječ.
select month(Date), sum(Amount) over (order by month(Date))
from (
select month(Date), sum(Amount) as Prihod
from Tsve
group by month(Date)
)
order by month(Date)
MsSql mi vrača komentar: Incorrect syntax near the keyword 'order'.
Eto to je to. Ako imaš još neku sugestiju bila bi mi od velike pomoći.

Tu grešku dobiješ jer derivirana tablica mora imati alias (maknuo si "as kumulativ" iz mojeg posta).
To nije jedina greška
* calculated stupac derivirane tablice month(Date) mora imati ime
* glavni upit treba koristiti nazive stupaca derivirane, a ne izvorne tablice
create table Tsve(Date datetime, Amount int)
insert into Tsve(Date, Amount)
values ('2018-01-01', 10000),
('2018-01-01', 1000),
('2018-02-01', 100),
('2018-02-02', 10),
('2018-03-01', 1)
select mjesec, sum(Prihod) over (order by mjesec)
from (
select month(Date) as mjesec, sum(Amount) as Prihod
from Tsve
group by month(Date)
) as kumulativ
order by mjesec

Hvala na brzoj pomoći, jednako toliko na poduci. Trenutno se bavim neodgodivim stvarima, ali ću svakako tvoju uputu primjeniti što prije. Zanima me rad sa Ms Sql bazom, ali vidim da tome treba posvetiti još mnogo vremena i učenja.
Ne znam pa pitam... U tablici prihoda i rashoda troškova organiziranoj po mjesecima i vrstama troška moram izračunati kumulativni prihod i kumulativni rashod unutar mjeseca. Nov sam u tome, ali netko sigurno zna kako da to napravim. Hvala!