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

SQL agregatni problem

[es] :: Baze podataka :: SQL agregatni problem

[ Pregleda: 2440 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Mikelly

Član broj: 16730
Poruke: 389
*.crnagora.net.



Profil

icon SQL agregatni problem15.11.2007. u 12:28 - pre 200 meseci
Imam dvije tabele:

jednu sa ulazima gdje se cuva nabavna cijena i kolicina artikala, i
drugu sa izlazima gdje se cuvaju prodajne cijene i kolicine istih artikala.

Konacni cilj mi je da racunam ukupnu zaradu po artiklima.

Hocu dakle da dobijem tabelu koja mi kao jedno polje daje ukupno koliko je potroseno za nabavku nekog artikla a u drugom polju koliko je prodato.

Kako sad to da uradim? Podaci se nalaze u dvije odvojene tabele, a ja moram radit agregatni query. Nesto mi je padalo na pamet preko subqeryja ali mozda postoji i lakse rjesenje? Molim za pomoc.

Pozdrav.
 
Odgovor na temu

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Član broj: 53780
Poruke: 576
*.simex-su.co.yu.

Sajt: www.baze-podataka.net


+4 Profil

icon Re: SQL agregatni problem15.11.2007. u 12:47 - pre 200 meseci
Daj da vidimo šta ti je to padalo na pamet preko subqeryja. Možda i nemože lakše?
"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
 
Odgovor na temu

Mikelly

Član broj: 16730
Poruke: 389
*.crnagora.net.



Profil

icon Re: SQL agregatni problem15.11.2007. u 14:01 - pre 200 meseci
evo nesto nabrzaka:

prva tabela, tabela ARTIKLI:
SIFRA, NAZIV

druga tabela, tabela ULAZI:
ID, ARTIKAL, CIJENA, KOLICINA

treca tabela, tabela IZLAZI:
ID, ARTIKAL, CIJENA, KOLICINA

relacija:
SIFRA-->ARTIKAL

napravio sam u accessu, ali mi treba kompletan sql izraz, koji ne mogu vidjet u accessu. Naime:

Query1:

SELECT ARTIKLI.Sifra, Sum([ULAZI].[KOLICINA]*[ULAZI].[CIJENA]) AS Sum1
FROM ARTIKLI INNER JOIN ULAZI ON ARTIKLI.SIFRA = ULAZI.ARTIKAL GROUP BY ARTIKLI.SIFRA;

Query2:

SELECT ARTIKLI.Sifra, Sum([IZLAZI].[KOLICINA]*[IZLAZI].[CIJENA]) AS Sum2
FROM ARTIKLI INNER JOIN IZLAZI ON ARTIKLI.SIFRA = IZLAZI.ARTIKAL GROUP BY ARTIKLI.SIFRA;

I konacno:

SELECT Query1.Sifra, Query1.Sum1, Query2.Sum2 FROM Query1 INNER JOIN Query2 ON Query1.Sifra = Query2.Sifra

I to je to sto trazim.

Ali stvarno ne znam kako ovo napisat kao cjelokupan sql izraz, tj. ne znam kako da definisem ove subqueryje unutar zadnjeg izraza... To je cini mi se malo teze (nesto mi access pominje nekakvu EXIST komandu ako subquery vrace vise od jednog polja, ali ne znam ni da li ta komanda postoji van access-a).
 
Odgovor na temu

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Član broj: 53780
Poruke: 576
*.simex-su.co.yu.

Sajt: www.baze-podataka.net


+4 Profil

icon Re: SQL agregatni problem15.11.2007. u 15:26 - pre 200 meseci
To ti je to, samo sve to spojiš u jedan upit i ne treba ti povezivanje sa tabelom Artikli pošto iz nje ništa ne uzimaš:
Code:
SELECT query1.artikal AS sifra, query1.sum1, query2.sum2
  FROM (SELECT artikal, SUM(kolicina*cijena) AS sum1
          FROM ulazi
         GROUP BY artikal
       ) AS query1
       INNER JOIN
       (SELECT artikal, SUM(kolicina*cijena) AS sum2
          FROM izlazi
         GROUP BY artikal
       ) AS query2
         ON query1.artikal = query2.artikal
 ORDER BY query1.artikal;

Ovde je verovatno prikladnije LEFT OUTER JOIN umesto INNER JOIN-a.
"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
 
Odgovor na temu

Mikelly

Član broj: 16730
Poruke: 389
*.crnagora.net.



Profil

icon Re: SQL agregatni problem16.11.2007. u 10:54 - pre 200 meseci
E to mi je trebalo, da vidim kako se ti subqueryji definisu.

Thnks
 
Odgovor na temu

dragancesu
subotica

Član broj: 38340
Poruke: 2189
*.eunet.yu.



+73 Profil

icon Re: SQL agregatni problem18.11.2007. u 12:18 - pre 200 meseci
Eh, sto bi bilo lepo da je to ovako jednostavno.

Jedan upit nije dovoljan. Najtacnija bi bila FIFO varijanta ali to podrazumeva dnevno azuriranje i dosta komplikuje stvar.

Sledeca (priblizna racunica) bi bila prodajna minus prosecna nabavna cena za prodate artikle. Zaradu mozes racunati samo za prodate artikle sto nije uzeto u obzir u predlozenom upitu.

Kod racunice se treba uzeti i porez. Znaci, prvo iz cena izbiti porez pa raditi dalje.


[Ovu poruku je menjao dragancesu dana 18.11.2007. u 19:15 GMT+1]
Pomozite Micro$oftu u borbi protiv piraterije, poklonite prijatelju Linux
 
Odgovor na temu

[es] :: Baze podataka :: SQL agregatni problem

[ Pregleda: 2440 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

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