Advertisement
Guest User

Untitled

a guest
Dec 5th, 2019
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.85 KB | None | 0 0
  1. USE BD1d_cz_1B
  2. GO
  3.  
  4. -- 1. Które miasto występuje najczęściej w danych adresowych?
  5. SELECT TOP 1 miasto From Klienci GROUP BY Miasto ORDER BY COUNT(idklienta) DESC
  6.  
  7. -- 2. Jak nazywają się: najstarszy i najmłodszy pracownik w firmie (imię i nazwisko, wiek w latach)
  8. SELECT t1.Nazwisko, t1.dataUR FROM
  9. (SELECT TOP 1 Idpracownika, Nazwisko, DATEDIFF(yy,DataUrodzenia, GETDATE()) dataUR FROM Pracownicy WHERE DataUrodzenia IS NOT NULL ORDER BY DATEDIFF(yy,DataUrodzenia, GETDATE())DESC ) t1
  10. UNION ALL
  11. SELECT t2.Nazwisko, t2.dataUR FROM
  12. (SELECT TOP 1 Idpracownika, Nazwisko, DATEDIFF(yy,DataUrodzenia, GETDATE()) dataUR FROM Pracownicy WHERE DataUrodzenia IS NOT NULL ORDER BY DATEDIFF(yy,DataUrodzenia, GETDATE()) ) t2
  13.  
  14. /* 3. Podać imię, nazwisko i wiek w latach wszystkich pracowników,
  15. którzy są starsi o co najmniej 10 lat od najmłodszego pracownika.*/
  16. SELECT t1.idpracownika,t1.lat FROM(
  17. SELECT p.idpracownika, DATEDIFF(yy,p.dataurodzenia,getdate()) lat FROM Pracownicy p where p.DataUrodzenia is not null
  18. ) t1 inner join (
  19. SELECT TOP 1 DATEDIFF(yy,p.dataurodzenia,getdate())+10 dataUrodzenia FROM Pracownicy p where p.DataUrodzenia is not null ORDER BY DATEDIFF(yy,p.dataurodzenia,getdate())+10
  20. ) t2 on t1.lat>=t2.dataUrodzenia
  21.  
  22.  
  23. /* 4. Podać ID zamówienia, ID klienta i datę zamówienia dla wszystkich zamówień złożonych później,
  24. niż data ostatniego zamówienia produktu o nazwie "Queso Cabrales".*/
  25.  
  26. SELECT k.idklienta, z.IDzamówienia, z.DataZamówienia, DATEDIFF(HH,z.DataZamówienia,GETDATE()) x FROM Zamówienia z INNER JOIN Klienci k on k.IDklienta=z.IDklienta
  27. INNER JOIN
  28. (
  29. SELECT TOP 1 p.NazwaProduktu, z.DataZamówienia, DATEDIFF(HH,z.DataZamówienia,GETDATE()) x from Produkty p INNER JOIN pozycjeZamówienia pz on pz.IDproduktu=p.IDproduktu
  30. INNER JOIN Zamówienia z on z.IDzamówienia=pz.IDzamówienia
  31. where p.NazwaProduktu='Queso Cabrales'
  32. ORDER BY DATEDIFF(HH,z.DataZamówienia,GETDATE())
  33. ) t1 on t1.DataZamówienia<z.DataZamówienia
  34.  
  35. /*
  36. SELECT t2.IDklienta,t2.IDzamówienia,t2.DataZamówienia FROM(
  37. SELECT k.idklienta, z.IDzamówienia, z.DataZamówienia, DATEDIFF(HH,z.DataZamówienia,GETDATE()) x FROM Zamówienia z INNER JOIN Klienci k on k.IDklienta=z.IDklienta
  38. )t2
  39. INNER JOIN
  40. (
  41. SELECT TOP 1 p.NazwaProduktu, z.DataZamówienia, DATEDIFF(HH,z.DataZamówienia,GETDATE()) x from Produkty p INNER JOIN pozycjeZamówienia pz on pz.IDproduktu=p.IDproduktu
  42. INNER JOIN Zamówienia z on z.IDzamówienia=pz.IDzamówienia
  43. where p.NazwaProduktu='Queso Cabrales'
  44. ORDER BY DATEDIFF(HH,z.DataZamówienia,GETDATE())
  45. ) t1 on t1.x>t2.x
  46. */
  47. /* 5. Podać nazwę kategorii, OD produktu, nazwę produktu i jego cenę, dla wszystkich produktów,
  48. których cena jednostkowa jest większa od średniej ceny produktów kategorii, do której produkt należy.*/
  49. SELECT t1.IDkategorii,t1.IDproduktu, t1.NazwaProduktu FROM
  50. (
  51. Select k.IDkategorii,k.NazwaKategorii, p.IDproduktu, p.NazwaProduktu, pz.CenaJednostkowa CenaWszystkichProduktów
  52. From Kategorie k inner join Produkty p on p.IDkategorii=k.IDkategorii
  53. INNER JOIN PozycjeZamówienia pz on pz.IDproduktu=p.IDproduktu
  54. GROUP BY p.NazwaProduktu, p.IDproduktu, k.NazwaKategorii, k.IDkategorii
  55. )t1 inner join
  56. (
  57. SELECT k.IDkategorii,k.NazwaKategorii, AVG(pz.CenaJednostkowa) srednia FROM Kategorie k INNER JOIN Produkty p on p.IDkategorii=k.IDkategorii
  58. INNER JOIN PozycjeZamówienia pz on pz.IDproduktu=p.IDproduktu
  59. GROUP BY k.IDkategorii, k.NazwaKategorii
  60. ) t2 on t1.CenaWszystkichProduktów>t2.srednia
  61.  
  62. -- 6. Wyświetlić nazwy produktów, które były częściej sprzedawane niż wynosi średnia sprzedaż w kategorii.
  63. /* 7. Dla każdej firmy wygenerować tyle kolumn, ile lat była prowadzona sprzedaż i
  64. dokonać zestawienia wartości zamówień w tych kolumnach.*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement