Advertisement
Bhaad

Kolos1

Jun 28th, 2017
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 18.36 KB | None | 0 0
  1. -- https://pastebin.com/5hPyjaAG
  2.  
  3. SELECT FirstName  + ' ' + LastName as dane -- konkatenacja
  4. FROM Employees
  5. order by dane
  6.  
  7. SELECT ContactName,Country,
  8.     case
  9.         when Country = 'Germany'  then 'Niemiec'
  10.         when Country = 'Sweden' then 'Szwed'
  11.         when Country = 'France' then 'Francuz'
  12.         else 'Nieznany'
  13.     end as 'Narodowość'
  14. FROM Customers
  15.  
  16. SELECT * FROM  Customers WHERE lower(ContactName) like 'm%' -- na konkretna litere
  17.  
  18. -- Najwieksza cena w kategorii
  19.  
  20. SELECT  CategoryName, ProductName, UnitPrice
  21. FROM
  22. (
  23.     SELECT CategoryName, ProductName, k.CategoryID, UnitPrice
  24.     FROM Categories as k
  25.     join Products as p
  26.     on k.CategoryID = p.CategoryID
  27. ) as t1
  28. join
  29. (
  30.     SELECT CategoryID, MAX(UnitPrice) as 'maks'
  31.     FROM Products
  32.     GROUP BY CategoryID
  33. ) as t2
  34. on t1.CategoryID = t2.CategoryID
  35. WHERE UnitPrice = maks
  36.  
  37. SELECT Country, COUNT(OrderID) as 'ile'
  38. FROM Orders as z
  39. left join Customers as k
  40. on z.CustomerID = k.CustomerID
  41. GROUP BY Country
  42. having COUNT(OrderID) =
  43. (
  44.     SELECT MIN(ile) as 'Min'
  45.     FROM
  46.     (
  47.         SELECT Country, COUNT(OrderID) as 'ile'
  48.         FROM Orders as z
  49.         left join Customers as k
  50.         on z.CustomerID = k.CustomerID
  51.         GROUP BY Country
  52.     ) as t1
  53. )
  54.  
  55.  
  56. SELECT City, COUNT(CustomerID) as CustQty
  57. FROM dbo.Customers
  58. WHERE Country = 'Brazil'
  59. GROUP BY City
  60. having COUNT(CustomerID)>2
  61.  
  62. SELECT City, COUNT(CustomerID) as CustQty
  63. FROM dbo.Customers
  64. GROUP BY City, Country
  65. having Country = 'Brazil' AND COUNT(CustomerID)>2
  66.  
  67.  
  68. SELECT FirstName, LastName, SUM(UnitPrice * Quantity) as 'Kwota'
  69. FROM Orders as z
  70. left join [Order Details] as op
  71.     on z.OrderID = op.OrderID
  72. left join Employees as p
  73.     on p.EmployeeID = z.EmployeeID
  74.         WHERE OrderDate >= '1997-04-01' AND OrderDate <= '1997-06-30'
  75.             GROUP BY FirstName, LastName --, p.IDpracownika, z.IDzamówienia
  76.                 Order By Kwota asc
  77.  
  78.  
  79.  
  80. --Zapytanie zwracaj¹ce 3 kolumny : imiê, nazwisko pracownika oraz wartoœci
  81. --zamówieñ przez niego zrealizowanych.Jedynie zamówienia z drugiego kwarta³u 1997 roku. (93)
  82.  
  83.  
  84. select p.Imię, p.Nazwisko, Podsumowanie from Zamówienia z
  85.     join Pracownicy p
  86.         on (p.IDpracownika = z.IDpracownika)
  87.     join [Podsumowania zamówień] o
  88.         on (o.IDzamówienia = z.IDzamówienia)
  89.             where DataZamówienia between '1997-04-01' and '1997-06-30'
  90.  
  91.  
  92. -- ______________________________________________________________________
  93.  
  94. --Zapytanie zwraca 2 kolumny : imiê, nazwisko (pracownik). Jedynie osoby, które zrealizowa³y najwiêcej zamówieñ w kraju swojego pochodzenia. (1) ------------
  95.  
  96. SELECT Imię, Nazwisko FROM pracownicy
  97. WHERE idpracownika in
  98. (
  99.      SELECT idpracownika FROM
  100.     (SELECT idpracownika, count(idzamówienia) as ile FROM Zamówienia -- ile każdy ma ogólnie zamówień
  101.             GROUP BY idpracownika
  102.     ) as t2 -- wylistowane ID
  103.     WHERE ile in -- wiersz musi zawierac się w ile czyt. max
  104.         (SELECT max(ile) FROM
  105.         (SELECT idpracownika, count(idzamówienia) as ile FROM Zamówienia -- ile każdy ma ogólnie zamówień
  106.             GROUP BY idpracownika
  107.         ) as t1) -- MAX ZAMÓWIEŃ
  108. )
  109.  
  110.  
  111. -- Zapytanie zwracajace 3 kolumny : NazwaFirmy, idzamówienia, kwota. Jedynie najdroższe zamówienia dla każdego z klientów. (89)        ------------
  112.  
  113.  
  114. SELECT NazwaFirmy, Faktury.IDzamówienia, Faktury.CenaKońcowa as kwota FROM Klienci
  115.     join Faktury
  116.         on Klienci.IDklienta = Faktury.IDklienta
  117. join
  118. (
  119.     SELECT  max(Faktury.CenaKońcowa) as kwota , Faktury.IDklienta  FROM Faktury
  120.         GROUP BY Faktury.IDklienta
  121. ) as t1
  122. on Klienci.IDklienta = t1.IDklienta
  123.     WHERE Faktury.CenaKońcowa in (t1.kwota) -- albo = t1.kwota
  124.         order by NazwaFirmy asc
  125.  
  126.  
  127. -- Zapytanie zwracające 2 kolumny : Kraj (klient), NazwaFirmy (spedytor). Jedynie najczęściej wykorzystywani spedytorzy na terenie danego kraju. (23)    ------------
  128.  
  129. SELECT tg1.KrajOdbiorcy, tg2.NazwaFirmy FROM
  130. (
  131.     SELECT  MAX(t1.maks) as ilosc, t1.KrajOdbiorcy FROM
  132.     (
  133.         SELECT count(KrajOdbiorcy) as maks, NazwaFirmy, KrajOdbiorcy FROM Spedytorzy as s
  134.         join Zamówienia as z
  135.             on s.IDspedytora=z.IDspedytora
  136.                 GROUP BY NazwaFirmy,KrajOdbiorcy
  137.     ) as t1 -- max dla kazdego spedytora dla kazdego kraju (3 te same Argentyny)
  138.         GROUP BY t1.KrajOdbiorcy
  139. ) as tg1    -- wybor maxa z tych 3-ech
  140. join
  141. (
  142.     SELECT count(KrajOdbiorcy) as maks, NazwaFirmy, KrajOdbiorcy FROM Spedytorzy as s
  143.     join Zamówienia as z
  144.         on s.IDspedytora=z.IDspedytora
  145.             GROUP BY NazwaFirmy,KrajOdbiorcy
  146. ) as tg2    -- max dla kazdego spedytora dla kazdego kraju (3 te same Argentyny)
  147. on tg1.KrajOdbiorcy=tg2.KrajOdbiorcy
  148.     WHERE tg1.ilosc=tg2.maks -- gdzie ilosc z 3 dostepnych jest rowna maxowi
  149.  
  150.  
  151. --zadanie 4                                                             ---- mniej wiecej
  152. --znajdz najtanszy i najdrozszy produkt dostarczony przez
  153. --dostawce ktorego nazwa zaczyna sie na litere od c-p
  154. --podaj z jakiej kategorii on pochodzi oraz w dodatkowej
  155. --kolumnie czy jest to najdrozszy czy najtanszy produkt
  156. --nazwa kategorii
  157. --najdrozszy produkt ma dostawce na litere A
  158.  
  159.  
  160. SELECT 'najdrozszy' as 'drogi_tani', d.NazwaFirmy , p.NazwaProduktu , p.CenaJednostkowa , k.NazwaKategorii
  161.     FROM Dostawcy as d
  162.     inner join produkty as p
  163.         on d.IDdostawcy=p.IDdostawcy
  164.     inner join kategorie as k
  165.         on k.IDkategorii=p.IDkategorii
  166.             WHERE (lower(substring(d.NazwaFirmy,1,1))) between 'a' and 'p'
  167.             and p.CenaJednostkowa in (SELECT max(p.cenajednostkowa)
  168.                 FROM produkty as p
  169.                 inner join Dostawcy as d
  170.                     on d.IDdostawcy=p.IDdostawcy)
  171. union
  172. SELECT 'najtanszy' as 'drogi_tani', d.NazwaFirmy , p.NazwaProduktu , p.CenaJednostkowa , k.NazwaKategorii
  173.     FROM Dostawcy as d
  174.     inner join produkty as p
  175.         on d.IDdostawcy=p.IDdostawcy
  176.     inner join kategorie as k
  177.         on k.IDkategorii=p.IDkategorii
  178.             WHERE (lower(substring(d.NazwaFirmy,1,1))) between 'a' and 'p'
  179.             and p.CenaJednostkowa in
  180.             (SELECT min(p.cenajednostkowa)
  181.                 FROM produkty as p
  182.                 inner join Dostawcy as d
  183.                     on d.IDdostawcy=p.IDdostawcy)
  184.    
  185.  
  186.    
  187.  
  188.  -- Zapytanie zwracające 2 kolumny : Kraj, Nazwaproduktu. Jedynie produkty najczęściej zamawiane w danym kraju. (46) -------------
  189.  
  190. SELECT tg1.KrajOdbiorcy,tg2.NazwaProduktu FROM
  191. (
  192. SELECT t1.KrajOdbiorcy,MAX(t1.ilosc) as maks FROM
  193. (
  194. SELECT z.KrajOdbiorcy, p.NazwaProduktu, COUNT(oz.IDzamówienia) as ilosc FROM Zamówienia as z
  195.     join [Opisy zamówień]     as oz
  196.         on  z.IDzamówienia=oz.IDzamówienia
  197.     join Produkty as p
  198.         on p.IDproduktu=oz.IDproduktu
  199.             GROUP BY z.KrajOdbiorcy, p.NazwaProduktu
  200. ) as t1
  201.     GROUP BY t1.KrajOdbiorcy
  202. ) as tg1   
  203. join
  204. (SELECT z.KrajOdbiorcy, p.NazwaProduktu, COUNT(oz.IDzamówienia) as iloscc FROM     Zamówienia as z
  205.     join [Opisy zamówień] as oz
  206.         on  z.IDzamówienia=oz.IDzamówienia
  207.     join Produkty as p
  208.         on p.IDproduktu=oz.IDproduktu
  209.             GROUP BY z.KrajOdbiorcy, p.NazwaProduktu
  210. ) as tg2 -- zliczana ilosc dla kazdego kraju i kazdego produktu w
  211. on tg1.KrajOdbiorcy=tg2.KrajOdbiorcy
  212.     WHERE tg1.maks=tg2.iloscc
  213.         order by KrajOdbiorcy asc
  214.  
  215.  
  216.        
  217. -- Zapytanie zwracające 1 kolumnę : idzamówienia. Jedynie zamówienia, na których ilość produktów równa jest średniej ilości produktów na zamówieniu. (283) -----------
  218.  
  219.      
  220. select IDzamówienia from (
  221.     select IDzamówienia, count(IDproduktu) as ileProduktow from [Opisy zamówień]
  222.     group by IDzamówienia
  223.     having count(IDproduktu) = (
  224.         select avg(ile) from (
  225.             select IDzamówienia, count(idproduktu) as ile from [Opisy zamówień]
  226.         group by IDzamówienia) as t1)
  227.     ) as t2
  228.  
  229.  
  230.  
  231.  --Zapytanie zwracające 3 kolumny : kraj (klient), imię, nazwisko.
  232. --Jedynie pracowicy realizujący najwięcej zamówień z danego kraju. (28) ---------------
  233.  
  234. SELECT  t2.Nazwisko, tg1.KrajOdbiorcy FROM
  235. (
  236.     SELECT max(t1.ilosc) as maks, t1.KrajOdbiorcy FROM
  237.     (
  238.         SELECT count(p.IDpracownika) as ilosc, p.Nazwisko, KrajOdbiorcy FROM Zamówienia as z
  239.         join Pracownicy as p
  240.             on z.IDpracownika=p.IDpracownika
  241.                 GROUP BY  p.IDpracownika, z.KrajOdbiorcy, p.Nazwisko
  242.     ) as t1 -- każdy ziomek w każdym kraju
  243. GROUP BY t1.KrajOdbiorcy
  244. ) as tg1 -- max w kazdym kraju
  245. join
  246.     (
  247.         SELECT count(p.IDpracownika) as ilosc, p.Nazwisko, KrajOdbiorcy FROM Zamówienia as z
  248.         join Pracownicy as p
  249.             on z.IDpracownika=p.IDpracownika
  250.                 GROUP BY  p.IDpracownika, z.KrajOdbiorcy, p.Nazwisko
  251.     ) as t2 -- każdy ziomek w każdym kraju
  252.         on tg1.KrajOdbiorcy=t2.KrajOdbiorcy
  253.             WHERE t2.ilosc=tg1.maks
  254.  
  255.  
  256.  -- Zapytanie zwracające 2 kolumny : Orderid, ilość różnych produktów na zamówieniu. Jedynie zamówienia z największą ilością różnych produktów. (1) ------
  257.  
  258. select IDzamówienia  from
  259. (select IDzamówienia , count(idproduktu) as 'ile' from [Opisy zamówień]
  260. group by IDzamówienia) as t1
  261. where ile=(select max(ile) from (select IDzamówienia , count(idproduktu) as 'ile' from [Opisy zamówień]
  262. group by IDzamówienia) as t2 );
  263.  
  264.  
  265.  -- Zapytanie zwracające 3 kolumny : imię, nazwisko, ilość zrealizowanych zamówień w 1997. Jedynie pracownicy, -------------
  266.  -- którzy w roku 1997 wykonali więcej niż wynosiła średnia ilość zrealizowanych zamówień na pracownika. (4)
  267.  
  268.  
  269. SELECT p.Imię,p.Nazwisko, COUNT(p.IDpracownika) as 'ilosc zamowien'  FROM Pracownicy as p
  270. JOIN Zamówienia as z
  271.     ON p.IDpracownika = z.IDpracownika
  272.         WHERE DataZamówienia between '1997/01/01' and '1997/12/31'
  273.             GROUP BY p.Imię, p.Nazwisko
  274.                 HAVING COUNT(p.IDpracownika)
  275.                     >
  276.                     (
  277.                     SELECT AVG(t1.suma) AS srednia FROM
  278.                     (
  279.                     SELECT p.IDpracownika, COUNT(p.IDpracownika) AS suma FROM Pracownicy as p
  280.                     JOIN Zamówienia as z
  281.                         ON p.IDpracownika = z.IDpracownika
  282.                             WHERE DataZamówienia between '1997/01/01' and '1997/12/31'
  283.                                 GROUP BY p.IDpracownika
  284.                     ) AS t1
  285.                     )
  286.  
  287.    
  288.  
  289. --zadanie 3
  290. --Zapytanie zwracaj¹ce 2 kolumny : nazwê kategorii oraz nazwê produktu.
  291. -- Jedynie najdro¿sze produkty dla ka¿dej z kategorii. (8)
  292.  
  293.  
  294. SELECT  NazwaKategorii, NazwaProduktu from Produkty
  295.     JOIN Kategorie
  296.         ON Produkty.IDkategorii = Kategorie.IDkategorii
  297.             where (CenaJednostkowa * StanMagazynu) in(
  298.                 SELECT  MAX(CenaJednostkowa * StanMagazynu) from Produkty
  299.                     Group by IDkategorii)
  300.  
  301.  
  302.  
  303. --Zapytanie zwracające 2 kolumny : kraj (klient), wartość zamówienia.
  304. --Jedynie zamówienia realizowane w roku 1998 (21)
  305.  
  306. select * from Zamówienia
  307. select * from [Opisy zamówień]
  308.  
  309. select z.KrajOdbiorcy,  sum(t2.suma) as wartość_zamówienia from Zamówienia as z
  310. join
  311. (select z.IDzamówienia, sum(t1.wartosc) as suma from Zamówienia as z
  312. join
  313.  (select IDzamówienia, (oz.ilość * oz.CenaJednostkowa) as wartosc from [Opisy zamówień] as oz
  314.  group by IDzamówienia, oz.ilość, oz.CenaJednostkowa) as t1
  315.  on z.IDzamówienia = t1.IDzamówienia
  316.  group by z.IDzamówienia) as t2
  317.  
  318.  on z.IDzamówienia = t2.IDZamówienia
  319.  where z.DataWysyłki between '1998-01-01' and '1999-01-01'
  320.  group by z.KrajOdbiorcy
  321.  
  322.  
  323.  --Zapytanie zwracające 2 kolumny : nazwę kategorii oraz nazwę firmy.
  324.  Jedynie firmy, które dostarczaja najwięcej produktów w danej kategorii. (14)
  325.  
  326. select * from Dostawcy
  327. select * from  Kategorie
  328. select * from Produkty
  329.  
  330.  
  331.  select tg1.NazwaKategorii,tg2.NazwaFirmy from (
  332. select t1.NazwaKategorii,MAX(t1.ilosc) as maks from (
  333.     select k.NazwaKategorii, d.NazwaFirmy ,COUNT(p.IDdostawcy) as ilosc from Dostawcy as d
  334. join Produkty as p on d.IDdostawcy=p.IDdostawcy
  335. join Kategorie as k on k.IDkategorii=p.IDkategorii
  336. group by k.NazwaKategorii, d.NazwaFirmy) as t1 group by t1.NazwaKategorii) as tg1  
  337.     join
  338.     (select k.NazwaKategorii, d.NazwaFirmy ,COUNT(p.IDdostawcy) as ilosc from Dostawcy as d
  339. join Produkty as p on d.IDdostawcy=p.IDdostawcy
  340. join Kategorie as k on k.IDkategorii=p.IDkategorii
  341. group by k.NazwaKategorii, d.NazwaFirmy) as tg2
  342.     on tg1.NazwaKategorii=tg2.NazwaKategorii
  343.     where tg1.maks=tg2.ilosc
  344.  order by tg1.NazwaKategorii asc
  345.  
  346. -----------------------------------------------------------------WORD------------------------------------------------------------------
  347.  
  348.  
  349.  
  350. Średni wiek w dziale
  351. select d.nazwa,avg(p.wiek) as srednia,MIN(p.wiek) as minimum,MAX(p.wiek) as maximum from pracownicy as p join dzialy as d
  352. on p.dzialID=d.dzialID
  353. join zarobki on zarobki.pracID=p.pracID
  354. group by d.nazwa
  355.  
  356.  
  357. 1Maksymalna i średnia zarobków w dziale
  358. select top 1 nazwa,srednia from(
  359. select nazwa,max(brutto) as max,min(brutto) as min,avg(brutto) as srednia from pracownicy
  360.  join dzialy on dzialy.dzialid=pracownicy.dzialid
  361.  join zarobki on zarobki.pracid=pracownicy.pracid
  362.  group by nazwa
  363.  ) as a order by srednia desc
  364.  
  365. 2Osoby które cokolwiek zarobiły
  366. select nazwisko,imie from pracownicy as p
  367.  where exists (select * from zarobki as z
  368.  where z.pracid = p.pracid)
  369.  
  370.  
  371. 3Nieprzypisani do żadnego działu
  372. select * from dzialy as d
  373.  where not exists (select * from pracownicy as p
  374.  where p.dzialid= d.dzialid)
  375.  
  376. 4Osoby których zarobki są większe od 3000( klauzula in – można select w selecie)
  377. select imie,nazwisko from pracownicy
  378. where pracid in
  379. (
  380. select distinct pracid from zarobki
  381. where brutto > 3000
  382. )
  383.  
  384.  
  385. 5Zapytanie zwracające 2 kolumny: 1 nazwę produktu i kategorii do której należy
  386. SELECT Kraj,Count(Idzamówienia) as 'ile' FROM Zamówienia
  387. as z LEFT JOIN Klienci as k
  388. ON z.IDklienta=k.IDklienta
  389. GROUP BY Kraj
  390. HAVING COUNT(Idzamówienia) =
  391. (SELECT MAX(ile) as 'maks' FROM
  392. (SELECT Kraj , COUNT(Idzamówienia) as 'ile' FROM Zamówienia
  393. as z LEFT JOIN Klienci as k
  394. ON z.IDklienta = k.IDklienta
  395. GROUP BY Kraj) as t1);
  396.  
  397.  
  398.  
  399. 6Zapytanie zwracające kategorie i nazwę produktu(jedynie najdroższe)
  400. SELECT NazwaKategorii, NazwaProduktu, CenaJednostkowa FROM
  401. (SELECT NazwaKategorii, NazwaProduktu, k.Idkategorii,
  402. CenaJednostkowa FROM Kategorie as k LEFT JOIN Produkty as p
  403. ON k.IDkategorii=p.IDkategorii) as t1
  404. LEFT JOIN
  405. (SELECT idkategorii, MAX(CenaJednostkowa) as 'maks' FROM
  406. Produkty
  407. GROUP BY IDkategorii) as t2
  408. ON t1.IDkategorii=t2.IDkategorii
  409. WHERE CenaJednostkowa=maks;
  410.  
  411.  
  412.  
  413.  
  414. 7Najtańszy i najdroższy produkt, kto dostarczył i do jakiej kategorii należy
  415. use Northwind
  416.  
  417. select 'najtanszy' ogolne, p.productname,p.unitprice,
  418. s.COMPANYNAME from products p
  419. inner join categories c on
  420. c.categoryid = p.categoryid
  421. inner join suppliers s on
  422. s.supplierid = p.supplierid
  423. where unitprice in
  424. (select min(unitprice) from products where unitprice
  425. is not null and unitprice<>0)
  426. union
  427. select 'najdrozszy' ogolne,p.productname,p.unitprice,
  428. s.COMPANYNAME from products p
  429. inner join categories c on
  430. c.categoryid = p.categoryid
  431. inner join suppliers s on
  432. s.supplierid = p.supplierid
  433. where unitprice in
  434. (select max(unitprice) from products);
  435.  
  436.  
  437. 8Zamówienie na najwyższą wartość wraz z datą
  438. select od.orderid,
  439. sum(od.unitprice*od.quantity),
  440. o.orderdate
  441. from [order details] od
  442.     join orders o
  443. on o.orderid = od.orderid
  444. group by od.orderid, o.orderdate
  445. having sum(od.unitprice*od.quantity) in
  446. (select(sum(unitprice*quantity)) from
  447. [order details]
  448. group by orderid);
  449.  
  450.  
  451.  
  452.  
  453. 9Zapytanie zwracające orderID oraz łączną wartość każdego z zamówień, posortowane
  454. select od.orderid as zamowienie,
  455. sum(quantity*unitprice) as wartosc from
  456. "order details" as ord left join orders as
  457. od
  458. on ord.orderid = od.orderid
  459. group by od.orderid order by od.orderid desc
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466. 10. Zapytanie zwracające nazwę kategorii zawierające najwięcej produktów
  467. Select NazwaKategorii from
  468. produkty as p left join Kategorie as c
  469. on p.IDkategorii=c.IDkategorii group by
  470. c.IDKategorii,NazwaKategorii
  471. having count(IDproduktu) =
  472. (select max(ile) from
  473. (select count(IDproduktu)
  474. as ile from Produkty group by IDkategorii) as temp)
  475.  
  476.  
  477. 11. Zapytanie zwracające kategorie i ilość produktów do niej przypisaną
  478. select NazwaKategorii, count(IDproduktu) from
  479. Produkty as p left join Kategorie as c
  480. on p.IDKategorii=c.IDkategorii
  481. group by NazwaKategorii
  482.  
  483. 12. Cena jednostkowa produktu w zakresie
  484. select NazwaProduktu, CenaJednostkowa from Produkty
  485. where CenaJednostkowa BETWEEN 20 and 80
  486.  
  487.  
  488. 13. Zapytanie zwracające 2 kolumny : Kraj (klient), idzamówienia. (830)
  489. select c.Kraj, o.IDzamówienia from Klienci c
  490. join Zamówienia o on c.IDklienta = o.IDklienta
  491.  
  492. 14. Zapytanie zwracajace 3 kolumny : imię, nazwisko, id zamóeinia. Jedynie zamówienia z 3 kwartału 1996 zrealizowane po terminie. (5)
  493. select p.imię, p.nazwisko,  f.IDzamówienia   from Pracownicy as p
  494. join Zamówienia as z on(p.IDpracownika=z.IDpracownika)
  495. join Faktury as f on (z.IDzamówienia=f.IDzamówienia)
  496. where f.DataZamówienia>= '1996-07-01' and f.DataZamówienia <= '1996-09-30'
  497. and f.DataWymagana<f.DataWysyłki
  498. group by p.Imię, p.Nazwisko,   f.IDzamówienia
  499.  
  500.  
  501. 15. Zapytanie zwracające 2 kolumny : idzamówienia, wartość zamówienia.Jedynie najdroższe zamówienie w USA. (1)
  502. select top 1 o.IDzamówienia, od.CenaJednostkowa from Zamówienia as o
  503.  join [Opisy zamówień] as od on od.IDzamówienia=o.IDzamówienia
  504.  join Klienci as c on o.IDKlienta=c.IDklienta
  505.  where c.Kraj like('USA')
  506.  order by CenaJednostkowa desc
  507.  
  508.  
  509. 16. --Zapytanie zwracające 2 kolumny : nazwaFirmy (dostawca), ilość produktów. Jedynie dostawca dostarczający najwięcej produktów w kategorii napoje. (3)
  510. select s.NazwaFirmy,p.IlośćZamówiona as maks, c.NazwaKategorii from
  511. produkty p join Kategorie c on
  512. c.IDKAtegorii = p.IDKAtegorii
  513. join Dostawcy s on
  514. s.IDDostawcy = p.IDDostawcy
  515. where p.IlośćZamówiona =
  516. (select max(wynik.maks) from (
  517. select s.NazwaFirmy,p.IlośćZamówiona maks, c.NazwaKategorii from produkty p
  518. join Kategorie c on
  519. c.IDKAtegorii = p.IDKAtegorii
  520. join Dostawcy s on
  521. s.IDDostawcy = p.IDDostawcy
  522. where c.NazwaKategorii like 'napoje'
  523. group by NazwaKategorii,NazwaFirmy,IlośćZamówiona)wynik)
  524.  
  525. -------------------------------------------------------------Katarzyna-----------------------------------------------------------------
  526.  
  527.  
  528. --Zapytanie zwracające 2 kolumny : NazwaFirmy (klient), NazwaFirmy (dostawca).
  529. --Dostawca, którego produkty są najczęściej zamawiane przez danego Klienta. (161)
  530.  
  531. select t1.NazwaOdbiorcy, t1.NazwaFirmy from(
  532.     select NazwaOdbiorcy, NazwaFirmy, count(NazwaFirmy) as ile from Zamówienia as z
  533.     join [Opisy zamówień] as o on o.IDzamówienia=z.IDzamówienia
  534.     join Produkty as p on p.IDproduktu=o.IDproduktu
  535.     join Dostawcy as d on d.IDdostawcy=p.IDdostawcy
  536.     group by NazwaOdbiorcy, NazwaFirmy
  537. ) as t1
  538. join (
  539.     select MAX(ile) as maks, NazwaOdbiorcy from (
  540.         select NazwaOdbiorcy, NazwaFirmy, count(NazwaFirmy) as ile from Zamówienia as z
  541.         join [Opisy zamówień] as o on o.IDzamówienia=z.IDzamówienia
  542.         join Produkty as p on p.IDproduktu=o.IDproduktu
  543.         join Dostawcy as d on d.IDdostawcy=p.IDdostawcy
  544.         group by NazwaOdbiorcy, NazwaFirmy
  545.     ) as a
  546.     group by NazwaOdbiorcy
  547. ) as t2
  548. on t1.NazwaOdbiorcy=t2.NazwaOdbiorcy
  549. where t1.ile=t2.maks
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement