[ XGhost @ 17.04.2013. 08:47 ] @
Trebam dobiti rezultat slijedeci

datum ulaz izlaz ukupno stanje
01.01.2013 10 5 5
02.01.2013 10 0 15
03.01.2013 10 0 25


Stavim SQL upit

select datum, sum(ulaz), sum(izlaz),sum(ulaz)-sum(izlaz) from baza
group by datum order by datum

i dobijem slijedeci rezultat

datum ulaz izlaz ukupno stanje
01.01.2013 10 5 5
02.01.2013 10 0 10
03.01.2013 10 0 10

Dakle imam ukupno stanje samo po datumu a zbirno za taj dan
sta bih trebao upisati da dobiem ispravan rezultat tnx
[ mret @ 17.04.2013. 08:53 ] @
Citat:
XGhost: Trebam dobiti rezultat slijedeci

select datum, sum(ulaz), sum(izlaz),sum(ulaz)-sum(izlaz) from baza
group by datum

i dobijem slijedeci rezultat

datum ulaz izlaz ukupno stanje
01.01.2013 10 5 5
02.01.2013 10 0 10
03.01.2013 10 0 10




Posto tebi treba kumulativ po danima (a ne prost sum), probaj ovo da uradis:

set @UKUPNO:=0;


select datum, sum(ulaz), sum(izlaz),(set @UKUPNO:=@UKUPNO+sum(ulaz)-sum(izlaz))
from baza
group by datum;

ovako nesto bi trebalo da prodje, mi u nasem softveru sve tako kumulisemo kroz "jedan prolaz".
Da li je resenje srecno ili nije, ne znam, ali radi posao za nase potrebe.
[ XGhost @ 17.04.2013. 09:00 ] @
kad upisem upit

set @UKUPNO:=0;
select datum, sum(ulaz), sum(izlaz),(set @UKUPNO:=@UKUPNO+sum(ulaz)-sum(izlaz))
from baza
group by datum;

dobijem slijedecu gresku

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''set @UKUPNO:=0;'0' at line 1
[ Shinhan @ 17.04.2013. 11:33 ] @
Kako upisuješ upit?

CLI, phpMyAdmin, MySQL workbench, PHP...

Ako je recimo PHP, onda ta dva querija moraš posebno poslati (prvo set, pa onda posebno select). Verovatno i u drugim programskim jezicima moraš querije posebno slati.
[ XGhost @ 17.04.2013. 11:42 ] @
Pokusavam dobiti rezultat u navcat-u (manager za mysql) u queryeditor-u
[ djoka_l @ 17.04.2013. 11:42 ] @
Ključna fraza je running total.
Može i bez pomoćne varijable:

Code (sql):


SELECT t1.datum, SUM(t1.ulaz) ulaz, SUM(t1.izlaz) izlaz, SUM(t2.ulaz)-SUM(t2.izlaz) saldo
FROM baza t1, baza t2
WHERE t2.datum <= t1.datum
GROUP BY t1.datum

 
[ XGhost @ 17.04.2013. 11:55 ] @
sad sam dobio rezultat

datum ulaz izlaz ukupno stanje
01.01.2013 10 5 5
02.01.2013 20 0 15
03.01.2013 30 0 25

stanje je tacno ali mi nije tacno polje ulaz
[ djoka_l @ 17.04.2013. 12:05 ] @
Uh ti si pustio onaj moj upit, pa si dobio glupost? Nisam dobro napisao, mora da ide sa onim SET. Druga, bolja opcija je da running sum računaš u tvom programu, a ne u upitu.
[ mret @ 17.04.2013. 12:20 ] @
Mislim da moze i bez SET u upitu, ovo bi trebalo da radi. Ako nece posalji CREATE i INSERT script za tu tvoju tabelu, lakse cemo resiti.

set @UKUPNO:=0;


select datum, sum(ulaz), sum(izlaz),(/*SET */@UKUPNO:=@UKUPNO+sum(ulaz)-sum(izlaz))
from baza
group by datum;
[ farmaceut @ 17.04.2013. 13:05 ] @
evo u jednoj liniji (samo malo proguglas...), primjer je nad nekom mojom prometnom tabelom, ali ces lako skuziti:

Code:


SELECT datum, ulaz, izlaz, @kumulativno:=@kumulativno + saldo
FROM (
                SELECT date(datum) as datum, SUM(kulaz) AS ulaz, SUM(kizlaz) AS izlaz, SUM(kulaz-kizlaz) AS saldo
                FROM detalji_podaci
                WHERE skladiste_grupa = 1221
                AND id_proizvoda = 7
                GROUP BY date(datum)
                ORDER BY date(datum)
                ) AS tmp
JOIN (SELECT @kumulativno:=0) as kum_tmp





Mozda moze i bez ovog podupita, ali nisam dalje trazio.
[ XGhost @ 17.04.2013. 14:34 ] @
ne prolazi ni ovo iznad pored svih varijanti uvijek dobijem poruku
[Err] 1054 - Unknown column 'kulaz' in 'field list'
[ farmaceut @ 17.04.2013. 18:29 ] @
Lijepo kazem da je to nad mojom prometnom tabelom, gdje ja imam kolonu "kulaz", nisam mislio da ces samo copy/paste vec da ces skuziti koncept....
(Stavi u buduce create/insert skriptu, da mozemo probati nad tvojom strukturom baze i testnim podacima...)

Evo ovako, sa "strukturom" koju si stavio u prvom postu, trebalo bi raditi:


Code:


SELECT datum, ulaz, izlaz, @kumulativno:=@kumulativno + saldo AS kumulativni_saldo
FROM (
                SELECT datum as datum, SUM(ulaz) AS ulaz, SUM(izlaz) AS izlaz, SUM(ulaz-izlaz) AS saldo
                FROM baza
                GROUP BY datum
                ORDER BY datum
                ) AS tmp
JOIN (SELECT @kumulativno:=0) as kum_tmp

[ XGhost @ 17.04.2013. 18:42 ] @
Funkcionira :)

Hvala druze na nesebicnoj pomoci
i ostalima koji su htjeli pomoci

[Ovu poruku je menjao XGhost dana 17.04.2013. u 20:20 GMT+1]