[ marko v @ 28.10.2007. 14:45 ] @
Vec se satima mucim sa odredjenim problemom.Dakle: tabele su slijedeće narudzbeGodisnje ( sifGodNarudzbe, kupac , godina) tjedneNarudzbe ( sifTjedneNarudzbe, sifTjedan, rokIsporuke, sifGodNarudzbe) stavkeTjedneNarudzbe ( brStavke, tjednaNarudzba, sifProizvod, komada) isporuke ( rbrIsporuke, datumIsporuke, sifTjedneNarudzbe) stavkeIsporuke ( brStavkeIsporuke, rbrIsporuke, sifProizvod, komada) Isporuke su vezane uz tjedne narudzbe. Za svaku tjednu narudzbu moze biti vise isporuka Upitom zelim dobiti za svaku godinu koliko je komada odredjenog proizvoda naručeno, koliko je isporučeno, i izračunati koliko je preostalo za isporučiti. To pokušavam slijedećim upitom: select narudzbeGodisnje.godina,narudzbeGodisnje.kupac, stavkeTjedneNarudzbe.sifProizvod as ProizvodNaruceni, sum(stavkeTjedneNarudzbe.komada) as Narucenih, sum(stavkeIsporuke.komada) as Isporuceno, (sum(stavkeTjedneNarudzbe.komada)-sum(stavkeIsporuke.komada)) as Preostalo from narudzbeGodisnje, tjedneNarudzbe, stavkeTjedneNarudzbe, isporuke, stavkeIsporuke where stavkeTjedneNarudzbe.sifProizvod= stavkeIsporuke.sifProizvod and tjedneNarudzbe.sifGodNarudzbe = narudzbeGodisnje.sifGodNarudzbe and stavkeTjedneNarudzbe.tjednaNarudzba = tjedneNarudzbe.sifTjedneNarudzbe and isporuke.sifTjedneNarudzbe = tjedneNarudzbe.sifTjedneNarudzbe and stavkeIsporuke.rbrIsporuke = isporuke.rbrIsporuke group by stavkeTjedneNarudzbe.sifProizvod, narudzbeGodisnje.godina, narudzbeGodisnje.kupac koji mi vraća rezultat: Code: godina kupac ProizvodNaruceni Narucenih Isporuceno Preostalo ------ -------------------------------------------------- -------------------- ----------- ----------- ----------- 2007 1 22 2000 800 1200 2007 1 34 2000 400 1600 2008 1 22 1000 300 700 2008 1 34 1200 340 860 koji je pogrešan u tome što upit stvarni broj naručenih komada nekog proizvoda pomnozi sa brojem isporuka u kojima je proizvod bio zastupljen u toj godini. Gdje grijesim i kako da to izbjegnem. |