Advertisement
olekturbo

BazyDanychKolo

Apr 5th, 2017
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.98 KB | None | 0 0
  1. --AN1 [3 pkt]
  2. --Znajdź klientów którzy zostali dodani pomiędzy 1.02 2010 a 31.12.2012
  3. --Wynik posortuj leksykograficznie po nazwisku i imieniu.
  4. --Rozwiązanie:
  5. SELECT * FROM klient WHERE data_dodania BETWEEN '2010-02-01' AND '2012-12-31'
  6. ORDER BY nazwisko, imie ASC
  7.  
  8. --AN2 [4 pkt]
  9. --W każdym koszyku (tabela koszyk) zmniejsz cenę netto produktu o 3% o ile jest
  10. --zamówionych więcej niż 4 sztuk tego produktu (tabela koszyk kolumna ilosc_sztuk).
  11. --Rozwiązanie:
  12. UPDATE koszyk SET cena_netto=cena_netto*0.97 WHERE ilosc_sztuk>4
  13.  
  14. --AN3 [4 pkt]
  15. --Usuń statusy zamówień (tabela status), które ani razu nie zostały przyjęte
  16. --przez zamówienie (zobacz tabela zamówienie_status).
  17. --Rozwiązanie:
  18. DELETE FROM status WHERE id_status NOT IN (SELECT DISTINCT id_status FROM zamowienie_status)
  19.  
  20. --AN4 [4 pkt]
  21. --Dla każdej nazwy miejscowości oblicz ilu mieszka w niej klientów.
  22. --(Uwzględnij też nazwy miejscowości, w których nie mieszka żaden klient,
  23. --a znajdują się one w tabeli adres.)
  24. --Wynik posortuj malejąco po obliczonej ilości, a dla takiej samej
  25. --ilości posortuj leksykograficznie po nazwie miejscowości.
  26. --Rozwiązanie:
  27.  
  28. SELECT a.miejscowosc, COUNT(k.id_adres) AS ilosc
  29. FROM adres a LEFT JOIN klient k ON a.id_adres=k.id_adres
  30. GROUP BY a.miejscowosc
  31. ORDER BY ilosc DESC, a.miejscowosc ASC
  32.  
  33. --AN5 [5 pkt]
  34. --Znajdź nazwiska i imiona pracowników, którzy łącznie sprzedali najmniejszą ilość sztuk
  35. --różnych produktów.
  36. --(Dla każdego pracownika należy zsumować wszystkie ilości sztuk z tabeli koszyk
  37. --i znaleźć pracownika/ów, którzy mają taką ilość najmniejszą.
  38. --Może być kilku takich pracowników.)
  39. --Proszę nie używać konstrukcji TOP 1 WITH TIES.
  40. --Rozwiązanie:
  41.  
  42. SELECT TOP 1 WITH TIES p.imie, p.nazwisko, SUM(k.ilosc_sztuk) AS ilosc_sztuk
  43. FROM pracownik p INNER JOIN zamowienie z ON p.id_pracownik=z.id_pracownik
  44. INNER JOIN koszyk k ON k.id_zamowienie=z.id_zamowienie
  45. GROUP BY p.imie, p.nazwisko
  46. ORDER BY ilosc_sztuk ASC
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement