Advertisement
Adijata

obp I parc 2013 7. zadatak

Apr 28th, 2015
282
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 2.97 KB | None | 0 0
  1. OSOBA (osoba INT, naziv CHAR, adresa CHAR, mjesto CHAR, datumZaposlenja DATE,
  2. STATUS CHAR{Zaposlen, Nezaposlen})
  3.  
  4. SLADISTE (skladiste INT, naziv CHAR, adresa CHAR, mjesto CHAR,
  5. skladistar INT(fk.osoba), datumFormiranja DATE, STATUS CHAR{Otvoren, Zatvoren})
  6.  
  7. ARTIKAL (artikal INT, naziv CHAR, datumPocetkaProizvodnje DATE,
  8. datumPrestankaProizvodnje DATE, proizvodnaCijena FLOAT, veleprodajnaCijena FLOAT,
  9. maloprodajnaCijena FLOAT, artikalUnio INT (fk.osoba))
  10.  
  11. ARTIKAL_ARHIVA (artikal INT(fk.artikal), datumPromjene DATE, kolicina INT,
  12. osobaPromjenila(fk.osoba), osobaOdobrila(fk.osoba), veleprodajnaCijena FLOAT,
  13. maloprodajnaCijena FLOAT)
  14.  
  15. FAKTURA (faktura INT, datumUnosa DATE, datumOd DATE, datumDo DATE, ukupno REAL,
  16. odobrio INT(fk.osoba), zaprimio INT(fk.osoba), fakturisao INT(fk.osoba),
  17. skladiste INT(fk.skladistar))
  18.  
  19. STAVKE_FAKTURE (faktura(fk.faktura) INT, stavka INT, artikal INT(fk.artikal),
  20.  kolicina REAL, cijena FLOAT, popust FLOAT)
  21.  
  22.  
  23. 7. Prikazati osobe koje su zaprimile fakture (naziv, mjesto i adresa) sa
  24. brojem faktura, kao i sve-ukupnim iznosima faktura
  25. (iznos = kolicina * cijena - iz stavki)
  26. od strane onih skladistara koji su zaposleni od datuma formiranja skladista
  27. ili od datumaPocetkaProizvodnje posljednje promijenjenog i prodatog artikla.
  28. Prosjecna cijena artikla u stavkama svih faktura mora biti izmedju cijene
  29. proizvodnje i cijene maloprodaje navedenog artikla.
  30. Uzeti u obzir samo one fakture koje sadrze vise od 3 stavke.
  31.  
  32. SELECT o.naziv, o.adresa, o.mjesto, COUNT(f.faktura), SUM(sf.kolicina*sf.cijena)
  33. FROM osoba o, faktura f, stavka_fakture sf
  34. WHERE f.fakturisao=o.osoba
  35. AND sf.faktura=f.faktura
  36. AND f.zaprimio = (SELECT s.skladistar
  37.                   FROM skladiste s, osoba p
  38.                   WHERE p.osoba=s.skladistar
  39.                   AND p.datumZaposlenja > s.datumFormiranjaSkladista
  40.           AND f.skladiste = s.skladiste
  41.                   OR p.datumZaposlenja > (SELECT a.datumProizvodnje
  42.                                           FROM artikal a, artikal_arhiva aa
  43.                                           WHERE aa.artikal = a.artikal
  44.                                           AND aa.datumPromjene = (
  45.                                                                   SELECT MAX(ab.datumPromjene)
  46.                                                                   FROM artikal_arhiva ab
  47.                                                                   )
  48.                                           )
  49.                   )
  50. AND (SELECT COUNT(stv.stavka)
  51.      FROM stavke_fakture stv
  52.      WHERE stv.faktura = f.faktura
  53.      ) > 3
  54.  
  55.  
  56. GROUP BY f.fakturisao
  57. HAVING  Avg(sf.cijena) BETWEEN  (SELECT a.veleprodajnaCijena
  58.                              FROM artikal a
  59.                              WHERE sf.artikal=a.artikal
  60.                              )
  61.                     AND     (SELECT c.veleprodajnaCijena
  62.                              FROM artikal c
  63.                              WHERE sf.artikal=c.artikal
  64.                              )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement