Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

izludjujuce sumiranje u SQL - u

[es] :: Baze podataka :: izludjujuce sumiranje u SQL - u

[ Pregleda: 1750 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

atila74

Član broj: 65886
Poruke: 16
80.74.164.*



Profil

icon izludjujuce sumiranje u SQL - u16.07.2006. u 08:42 - pre 216 meseci
Pomalo radim sa bazama (MS SQL i Access) nisam programer ni tako nesto slicno, gotovo upucen, ali imam jedam problem. Imam tabelu proizvod(id, sifra, naziv) i
tabelu promet (prozivodid, ulaz. izlaz, datum). Treba mi sql (ali jedan) da dobijem potrosnju po mesecima. Znam to da uradim kad je samo npr jedan mesec, pa cu tamo napisati nesto tipa .....SUM(izlaz) WHERE datum=(mesec JAN). ALI kako da u okviru jednog sQL upita dobijem paralelno potrosnju za 3 razlicita perioda.

izlaz npr bi bio
prozivodid, PotrosnjaZaJan, PotrosnjaZaFeb, PotrosnjaZaMart

A drugi deo koji me muci, je kad tako neko sumiranje sad hocu da povezem sa onom tabelom proizvodi, kako da se prikazi svi proizvodi i oni koji se ne pojavljuju u sumiranju, znaci gde su i nule. U literaturi pise inner join i slicno, ja sam to proucio i to radi, osim u slucaju kad meni treba kad se koristi SUM :)
Radim u Access i SQL Server, mislim da je to isto, bar sto se tice ovog mog dela :).
Unapred hvala, i izvinjavam se ako tehnicki pitanje nije bas strucno definisano, ali sam bar trudio da ukazem na srz problema

 
Odgovor na temu

amladjo
Mladen Arbutina
Novi Sad

Član broj: 30160
Poruke: 53
*.ptt.yu.

Sajt: www.dynasoft.rs


Profil

icon Re: izludjujuce sumiranje u SQL - u16.07.2006. u 09:44 - pre 216 meseci
Code:
select Month(Datum),Year(Datum),sum(izlaz)
  from Izlaz
  group by Month(Datum),Year(Datum)
  order by Month(Datum),Year(Datum)

Ovo ti je najčešći primer za rezultate po mesecima:
Mesec | Godina | Uk.izlaz
1 | 2006 | 123
2 | 2006 | 56
4 | 2006 | 182

Dakle, svaki mesec je jedan slog, mesece za koje nemaš promet se NE prikazuju.

Isti rezultati ali po artiklima se dobija preko:
Code:
select ProizvodID,Month(Datum),Year(Datum),sum(izlaz)
  from Izlaz
  group by ProizvodID,Month(Datum),Year(Datum)
  order by ProizvodID,Month(Datum),Year(Datum)


Da dobiješ rezultate po mesecima po kolonama i da ti prikaže NULE ide sledeći upit.
Code:
select a.ProizvodID,a.Naziv,
  (select Sum(Izlaz) from Izlaz where Month(Datum)=1 and ProizvodID=a.ID) as SumJan,
  ...(ovde idu ostali meseci)...
  (select Sum(Izlaz) from Izlaz where Month(Datum)=12 and ProizvodID=a.ID) as SumDec
  from Artikli a


Ovaj upit je malo nespecifičan ali u MS SQL funkcioniše, za Access nisam proverio.
 
Odgovor na temu

atila74

Član broj: 65886
Poruke: 16
80.74.164.*



Profil

icon Re: izludjujuce sumiranje u SQL - u16.07.2006. u 20:24 - pre 216 meseci
hvalaa,

perfektno radi. Ne znam za druge, ali ovo meni otvara sasvim jedan novi pogled na svet :). Ovo mi je olaksalo zivot. Radi i na Access i na SQL Server
 
Odgovor na temu

[es] :: Baze podataka :: izludjujuce sumiranje u SQL - u

[ Pregleda: 1750 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.