Poziom średniozaawansowany

Zadanie 1

Wybierz wszystkich klientów, którzy zamówili produkty o id 1 i 55. Zadanie rozwiąż na dwa sposoby.

Baza: Northwind, Tabele: dbo.Order Details, dbo.Orders, Kolumny: CustomerID, OrderID, ProductID, Wynik: 16 rows

[spoiler title=’Rozwiązanie’ collapse_link=’true’]
  1. Z użyciem podzapytań i Exists:

SELECT DISTINCT O.CustomerID

FROM dbo.[Order Details] OD JOIN dbo.Orders O

ON OD.OrderID = O.OrderID

WHERE OD.ProductID = 1

AND EXISTS (

SELECT *

FROM dbo.[Order Details] OD2 JOIN dbo.Orders O2

ON OD2.OrderID = O2.OrderID

WHERE O.CustomerID = O2.CustomerID

AND OD2.ProductID = 55

)

ORDER BY O.CustomerID;

  1. Z użyciem operatorów zbiorowych:

SELECT O.CustomerID

FROM dbo.[Order Details] OD JOIN dbo.Orders O

ON OD.OrderID = O.OrderID

WHERE OD.ProductID = 1

INTERSECT

SELECT O.CustomerID

FROM dbo.[Order Details] OD JOIN dbo.Orders O

ON OD.OrderID = O.OrderID

WHERE OD.ProductID = 55

 

ORDER BY O.CustomerID;

[/spoiler]

Alexandretta

Kobieta gracz. Po godzinach pracy, z zapałem i piekielnymi ognikami w oczach biega po lochach i tłucze bogu ducha winne zombie czy inne szkielety. Miłośniczka wszelkiej maści cRPG. Notoryczne problemy z wyborem klasy i rasy, bo wszystko fajne... W chwilach zwątpienia zatraca się przy dźwiękach mieczy, roztrzaskiwanych tarcz i okrzyków bojowych, słuchając wiking metalu z zimnej, niegościnnej, odległej Skandynawii. Czasem zdarzy jej się pograć w jakąś strategię bądź nawet w FPP, ale tylko na easy, żeby nie psuć sobie niepotrzebnie nerwów.

Related Articles

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

Back to top button