thisissoeasy

b

Sep 5th, 2021 (edited)
194
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 9.41 KB | None | 0 0
  1. /* Dohvatite imena i prezimena svih kupaca iz Frankfurta i uz svakog ispišite broj računa (polje
  2. BrojRacuna) koje je platio karticom, od višeg prema nižem. */
  3.  
  4. select k.IDKupac, k.Ime, k.Prezime, k.GradID, r.BrojRacuna, r.KreditnaKarticaID, r.DatumIzdavanja
  5.     from Kupac as k
  6.     inner join Racun as r
  7.         on r.KupacID=k.IDKupac
  8.     where k.GradID =
  9.     (
  10.         select g.IDGrad
  11.         from Grad as g
  12.         where g.Naziv='Frankfurt'
  13.     )
  14.     and r.KreditnaKarticaID is not null
  15.     order by 1 desc, 5 desc
  16.  
  17.  
  18. /* Dohvatite sve boje proizvoda. Uz svaku boju pomoću podupita dohvatite broj proizvoda u toj boji. /*
  19.     select p.Boja,
  20.     (
  21.         select count(pr.IDProizvod)
  22.         from Proizvod as pr
  23.         where pr.Boja=p.Boja
  24.     ) as Broj_proizvoda
  25.     from Proizvod as p
  26.     group by p.Boja
  27.     having p.boja is not null
  28.  
  29. /* Dohvatite imena i prezimena 5 komercijalista koji su izdali najviše računa. */
  30.  
  31. select top 5 k.Ime, k.Prezime,
  32. (
  33.     select count(r.IDRacun)
  34.     from racun as r
  35.     where r.KomercijalistID=k.IDKomercijalist
  36. ) as Broj_izdanih_racuna
  37. from Komercijalist as k
  38. order by 3 desc
  39.  
  40. /*ZD1
  41. Ispisite imena komercijalista koji nemaju svojih racuna*/
  42.  
  43. SELECT distinct k.Ime, k.Prezime
  44. FROM Komercijalist AS k
  45. WHERE k.IDKomercijalist NOT IN
  46. (
  47.     SELECT  r.KomercijalistID
  48.     FROM Racun AS r
  49.     where r.KomercijalistID=k.IDKomercijalist
  50. )
  51.  
  52. /*ZD2
  53. Ispisite za sve gradove ukupni ostvareni promet(gledano po polju UkupnaCijena u tablici Stavka)
  54. po pojedinom gradu.Rezultat sortirajte padaju�e po ostvarenom prometu.*/
  55.  
  56. SELECT g.Naziv, (SELECT SUM(s.UkupnaCijena)
  57. ) AS OstvareniPromet
  58. FROM Grad AS g
  59.  
  60. /*1. Ispisite brojku koliko ima proizvoda koji nisu nikad prodani.*/
  61.  
  62. select count(*)
  63. from Proizvod as p
  64. where p.IDProizvod not in (select s.ProizvodID from Stavka as s)
  65.  
  66. /*2. Ispisite za sve racune ID racuna, broj racuna i prosjecan iznos prodanih stavki na pojedinom racunu.*/
  67.  
  68. select r.IDRacun, r.BrojRacuna, (
  69.     select AVG(s.UkupnaCijena)
  70.     from Stavka as s
  71.     where s.RacunID in (
  72.         select r1.IDRacun
  73.         from Racun as r1
  74.         where r1.IDRacun=r.IDRacun)) as Prosjek
  75. from Racun as r
  76.  
  77. /* ZD3
  78. Ispisite nazive gradova kupaca(bez ponavljanja) kojima se prodavali komercijalisti koji nisu stalno zaposleni.
  79. Zadatak treba rijesiti iskljucivo podupitima, bez spajanja. */
  80.  
  81. SELECT
  82. g.Naziv
  83. FROM Grad AS g
  84. WHERE g.IDGrad IN
  85. (
  86.     SELECT
  87.     k.GradID
  88.     FROM Kupac AS k
  89.     WHERE k.IDKupac IN
  90.     (
  91.         SELECT
  92.         r.KupacID
  93.         FROM Racun AS r
  94.         WHERE r.KomercijalistID IN
  95.         (
  96.             SELECT
  97.             k.IDKomercijalist
  98.             FROM Komercijalist AS k
  99.             WHERE k.StalniZaposlenik = 0
  100.         )
  101.     )
  102. )
  103.  
  104.  
  105.  
  106.  
  107.  
  108. /*3. Ispisite tipove kreditnih kartica (bez ponavljanja) koje su koristene za placanje plavih proizvoda.
  109.    Zadatak treba rijesiti iskljucivo podupitima, bez spajanja.*/
  110.  
  111. select distinct kk.Tip
  112. from KreditnaKartica as kk
  113. where kk.IDKreditnaKartica in (
  114.     select r.KreditnaKarticaID
  115.     from Racun as r
  116.     where r.IDRacun in (
  117.         select s.RacunID
  118.         from Stavka as s
  119.         where s.ProizvodID in (
  120.         select p.IDProizvod
  121.         from Proizvod as p
  122.         where p.Boja='plava')))
  123.  
  124. /*4. Ispisite 5 naziva gradova koji imaju najmanju kolicinu prodanih proizvoda koji imaju definiranu boju,
  125.    gledane po polju Kolicina u tablici Stavka. U istom upitu prikazite i ostvaren promet pojedinog prikazanog
  126.    grada (gledano po polju UkupnaCijena u tablici Stavka)*/
  127.  
  128. select top 5 g.Naziv, (
  129.     select sum(s.Kolicina)
  130.     from Stavka as s
  131.     where s.ProizvodID in (
  132.         select p.IDProizvod
  133.         from Proizvod as p
  134.         where p.Boja is not null and s.RacunID in (
  135.             select r.IDRacun
  136.             from Racun as r
  137.             where r.KupacID in (
  138.                 select k.IDKupac
  139.                 from Kupac as k
  140.                 where k.GradID=g.IDGrad)))),
  141. (select sum(s.UkupnaCijena)
  142. from Stavka as s
  143. where s.ProizvodID in (
  144.         select p.IDProizvod
  145.         from Proizvod as p
  146.         where s.RacunID in (
  147.             select r.IDRacun
  148.             from Racun as r
  149.             where r.KupacID in (
  150.                 select k.IDKupac
  151.                 from Kupac as k
  152.                 where k.GradID=g.IDGrad))))
  153. from Grad as g
  154. where g.IDGrad in (
  155.     select k.GradID
  156.     from Kupac as k
  157.     where k.IDKupac in (
  158.         select r.KupacID
  159.         from Racun as r
  160.         where r.IDRacun in (
  161.             select s.RacunID
  162.             from Stavka as s
  163.             where s.ProizvodID in (
  164.                 select p.IDProizvod
  165.                 from Proizvod as p
  166.                 where p.Boja is not null))))
  167. order by (select sum(s.Kolicina)
  168.     from Stavka as s
  169.     where s.ProizvodID in (
  170.         select p.IDProizvod
  171.         from Proizvod as p
  172.         where p.Boja is not null and s.RacunID in (
  173.             select r.IDRacun
  174.             from Racun as r
  175.             where r.KupacID in (
  176.                 select k.IDKupac
  177.                 from Kupac as k
  178.                 where k.GradID=g.IDGrad))))
  179.  
  180. /* Vratite količinu zarađenog novca za svaku boju proizvoda, ali samo za one boje koje su zaradile više od
  181. 20.000.000. */
  182.  
  183.     select p.Boja,
  184.     (
  185.         select sum(s.UkupnaCijena)
  186.         from stavka as s
  187.         inner join Proizvod as pr
  188.             on pr.IDProizvod=s.ProizvodID
  189.         where pr.Boja=p.Boja
  190.     ) as Zaradjeno
  191.     from proizvod as p
  192.     group by p.Boja
  193.     having
  194.     (
  195.         select sum(s.UkupnaCijena)
  196.         from stavka as s
  197.         inner join Proizvod as pr
  198.             on pr.IDProizvod=s.ProizvodID
  199.         where pr.Boja=p.Boja
  200.     ) > 20000000
  201.  
  202. /* Vratiti sve proizvode koji imaju dodijeljenu potkategoriju i koji su prodani u količini većoj od 5.000. Uz
  203. svaki proizvod vratiti prodanu količinu i naziv kategorije. */
  204.  
  205.     select p.Naziv, p.IDProizvod
  206.     ,(
  207.         select sum(s.Kolicina)
  208.         from stavka as s
  209.         where s.ProizvodID=p.IDProizvod
  210.     ) as Prodana_kolicina,
  211.     (
  212.         select kt.Naziv
  213.         from Potkategorija as pk
  214.         inner join Kategorija as kt
  215.             on kt.IDKategorija=pk.KategorijaID
  216.         where p.PotkategorijaID=pk.IDPotkategorija
  217.     ) as Kategorija
  218.     from proizvod as p
  219.     where p.PotkategorijaID is not null
  220.     and
  221.     (
  222.         select sum(s.Kolicina)
  223.         from stavka as s
  224.         where s.ProizvodID=p.IDProizvod
  225.     )>5000
  226.  
  227. /* Ispišite ukupno zarađene iznose i broj prodanih primjeraka za svaki od ikad prodanih proizvoda. */
  228.     select p.Naziv,
  229.     (
  230.         select sum(s.UkupnaCijena)
  231.         from stavka as s
  232.         where s.ProizvodID=p.IDProizvod
  233.     ) as Ukupno_zaradjeno,
  234.     (
  235.         select sum(st.kolicina)
  236.         from stavka as st
  237.         where st.ProizvodID=p.IDProizvod
  238.     ) as Broj_prodanih_primjeraka
  239.     from proizvod as p
  240.     where
  241.     (
  242.         select sum(s.UkupnaCijena)
  243.         from stavka as s
  244.         where s.ProizvodID=p.IDProizvod
  245.     ) is not null
  246.     order by 2 desc
  247.  
  248. /* Ispišite ukupno zarađene iznose za svaki od proizvoda koji je prodan u više od 2.000 primjeraka. */
  249.  
  250.     select p.Naziv,
  251.     (
  252.         select sum(s.UkupnaCijena)
  253.         from stavka as s
  254.         where s.ProizvodID=p.IDProizvod
  255.     ) as Ukupno_zaradjeno,
  256.     (
  257.         select sum(st.kolicina)
  258.         from stavka as st
  259.         where st.ProizvodID=p.IDProizvod
  260.     ) as Broj_prodanih_primjeraka
  261.     from proizvod as p
  262.     where
  263.     (
  264.         select sum(s.UkupnaCijena)
  265.         from stavka as s
  266.         where s.ProizvodID=p.IDProizvod
  267.     ) is not null
  268.     and
  269.     (
  270.         select sum(st.kolicina)
  271.         from stavka as st
  272.         where st.ProizvodID=p.IDProizvod
  273.     )>2000
  274.     order by 3 desc
  275.  
  276.  
  277. /* Ispišite ukupno zarađene iznose za svaki od proizvoda koji je prodan u više od 2.000 primjeraka ili je
  278. zaradio više od 2.000.000 dolara */
  279.     select p.Naziv,
  280.     (
  281.         select sum(s.UkupnaCijena)
  282.         from stavka as s
  283.         where s.ProizvodID=p.IDProizvod
  284.     ) as Ukupno_zaradjeno,
  285.     (
  286.         select sum(st.kolicina)
  287.         from stavka as st
  288.         where st.ProizvodID=p.IDProizvod
  289.     ) as Broj_prodanih_primjeraka
  290.     from proizvod as p
  291.     where
  292.     (
  293.         select sum(s.UkupnaCijena)
  294.         from stavka as s
  295.         where s.ProizvodID=p.IDProizvod
  296.     ) is not null
  297.     and
  298.     (
  299.     (
  300.         select sum(st.kolicina)
  301.         from stavka as st
  302.         where st.ProizvodID=p.IDProizvod
  303.     )>2000
  304.     or
  305.     (
  306.         select sum(s.UkupnaCijena)
  307.         from stavka as s
  308.         where s.ProizvodID=p.IDProizvod
  309.     )>2000000
  310.     )
  311.     order by 3 desc
  312.  
  313. -- PRIKAZATI KOMERCIJALISTE S IZNADPROSJEÈNIM BROJEM IZDANIH RAÈUNA
  314.  
  315. select kom.ime, kom.Prezime,
  316. (
  317.     select count(*)
  318.     from racun as r
  319.     where r.KomercijalistID=kom.IDKomercijalist
  320. ) as KreiranihRacuna,
  321. (
  322.     select COUNT(*)/COUNT(distinct rn.komercijalistid)
  323.     from racun as rn
  324.     where rn.Komercijalistid is not null
  325. ) as ProsjecnoKreiranoRacuna
  326. from komercijalist as kom
  327. where
  328. (
  329.     select count(*)
  330.     from racun as r
  331.     where r.KomercijalistID=kom.IDKomercijalist
  332. )
  333.     >
  334. (
  335.     select COUNT(*)/COUNT(distinct rn.komercijalistid)
  336.     from racun as rn
  337.     where rn.Komercijalistid is not null
  338. )
  339. order by 3 desc
  340.  
  341. -- 11. Vratite proizvode koji su prodavani u kolièini manjoj od 5.
  342.  
  343. -- spajanjima
  344. select distinct p.naziv
  345. from proizvod as p
  346. inner join stavka as s
  347. on s.ProizvodID=p.IDProizvod
  348. where s.Kolicina<5
  349.  
  350. -- podupitom
  351. select p.Naziv
  352. from Proizvod as p
  353. where exists
  354. (
  355.     select *
  356.     from stavka as s
  357.     where s.ProizvodID=p.IDProizvod
  358.     and s.Kolicina<5
  359. )
  360.  
  361. -- 7. Dohvatite imena i prezimena 5 najboljih komercijalista, te uz svakog dohvatite i iznos prodane robe.
  362.  
  363. -- spajanjima
  364. select top 5 kom.ime, kom.prezime, count(distinct r.IDRacun) as BrojIzdanihRaèuna, SUM(s.ukupnacijena) as UkupanIznos
  365. from racun as r
  366. inner join Komercijalist as kom
  367. on kom.IDKomercijalist=r.KomercijalistID
  368. inner join stavka as s
  369. on s.RacunID=r.IDRacun
  370. group by kom.ime, kom.Prezime
  371. order by BrojIzdanihRaèuna desc
  372.  
  373. -- podupitima
  374. select top 5 k.Ime, k.Prezime,
  375. (
  376.     select COUNT(r.BrojRacuna)
  377.     from Racun as r
  378.     where r.KomercijalistID = k.IDKomercijalist
  379. ) as Broj_Izdanih_Racuna,
  380. (
  381.     select SUM(s.UkupnaCijena)
  382.     from Stavka as s
  383.     where s.RacunID in
  384.         (
  385.             select r.IDRacun
  386.             from Racun as r
  387.             where r.KomercijalistID = k.IDKomercijalist
  388.         )
  389. ) as Zarada
  390. from Komercijalist as k
  391. order by
  392. (
  393.     select COUNT(r.BrojRacuna)
  394.     from Racun as r
  395.     where r.KomercijalistID = k.IDKomercijalist
  396. ) desc
  397. order by BrojIzdanihRaèuna desc
  398.  
  399.  
Add Comment
Please, Sign In to add comment