Tagi: Northwind

Zadanie 7.

Używając podkwerend, znajdź firmy, które dostarczają produkty z zamówienia nr 10337.

Baza: Northwind, Tabele: dbo. Suppliers, dbo.Products, dbo.Order Details, Kolumny: SupplierID, CompanyName, ProductID, OrderID, Wynik: 4 rows

s7

Rozwiązanie

SELECT s.SupplierID, s.Companyname
FROM dbo.Suppliers as s
WHERE s.SupplierID in (
SELECT p.SupplierID
FROM dbo.Products as P
WHERE p.ProductID in (
SELECT od.ProductID
FROM dbo.[Order Details] as od
WHERE od.OrderID = 10337
)
)

[collapse]

Zadanie 29.

Dla każdego klienta pokaż datę oraz numer pierwszego złożonego zamówienia.

Baza: Northwind, Tabela: dbo.Orders, Kolumny: CustomerID, OrderID, OrderDate, Wynik: 89 rows

p29

Rozwiązanie

SELECT CustomerID, MIN(OrderID) as FirstOrder, MIN(OrderDate) as FirstOrderDate
FROM dbo.Orders
GROUP BY CustomerID;

[collapse]

Zadanie 6.

Pokaż zamówienia, które złożyli klienci z USA i które były obsługiwane przez pracownika na stanowisku Sales Representative.

Baza: Northwind, Tabele: dbo.Orders, dbo.Customers, dbo.Employees, Kolumny: OrderID, CustomerID, EmployeeID, Country, Title, Wynik: 88 rows

s6

Rozwiązanie

SELECT OrderID, CustomerID, EmployeeID
FROM dbo.Orders
WHERE CustomerID in (SELECT CustomerID FROM dbo.Customers WHERE Country = 'USA')
AND EmployeeID in (SELECT EmployeeID FROM dbo.Employees WHERE Title = 'Sales Representative')
ORDER BY CustomerID, OrderID;

[collapse]

Zadanie 5.

Pokaż pierwsze i ostatnie zamówienie dla klientów z Niemiec.

Baza: Northwind, Tabele: dbo.Orders, dbo.Customers, Kolumny: CustomerID, OrderID, Country, Wynik: 11 rows

s5

Rozwiązanie

SELECT CustomerID, MIN(OrderID) as FirstOrder, MAX(OrderID) as LastOrder
FROM dbo.Orders
GROUP BY CustomerID
HAVING CustomerID in (SELECT CustomerID FROM dbo.Customers WHERE Country = 'Germany')
ORDER BY CustomerID;

[collapse]

Zadanie 4.

Wybierz tylko parzyste numery zamówień z zakresu 10759 – 10924, które złożyli klienci z USA. Nie używaj złączenia tabel.

Baza: Northwind, Tabele: dbo.Orders, dbo.Customers, Kolumny: OrderID, CustomerID, Country, Wynik: 9 rows

s4

Rozwiązanie

SELECT OrderID, CustomerID
FROM dbo.Orders
WHERE (OrderID %2 = 0) AND (OrderID BETWEEN 10759 AND 10924)
AND CustomerID in (SELECT CustomerID FROM dbo.Customers WHERE Country = 'USA');

[collapse]

Zadanie 3.

Pokaż klientów, którzy w 1996 roku nie złożyli żadnego zamówienia, ale złożyli je później. Zadanie rozwiąż na dwa różne sposoby.

Baza: Northwind, Tabela: dbo.Orders, Kolumny: CustomerID, OrderDate, Wynik: 22 rows

s3

Rozwiązanie

1) z grupowaniem:

SELECT CustomerID
FROM dbo.Orders
GROUP BY CustomerID
HAVING MIN(OrderDate) >= '19970101';

2) z użyciem podzapytań:

SELECT DISTINCT O.CustomerID
FROM dbo.Orders as O
WHERE O.CustomerID not in (SELECT o1.CustomerID FROM dbo.Orders as o1 WHERE o1.OrderDate >= '19960101' AND o1.OrderDate < '19970101')
AND O.CustomerID in (SELECT o2.CustomerID FROM dbo.Orders as o2 WHERE o2.OrderDate >= '19970101')
ORDER BY O.CustomerID;

[collapse]

Zadanie 1.

Wyznacz id klienta, który złożył ostatnie zamówienie (najnowsze). Zadanie rozwiąż na dwa różne sposoby.

Baza: Northwind, Tabela: dbo.Orders, Kolumny: CustomerID, OrderID, Wynik: 1 row

s1

Rozwiązanie

1) z użyciem funkcji OFFSET-FETCH, ewentualnie TOP:

SELECT CustomerID, OrderID
FROM dbo.Orders
ORDER BY OrderID DESC
OFFSET 0 ROWS FETCH NEXT 1 ROW ONLY;

2) z użyciem podzapytania:

SELECT CustomerID, OrderID
FROM dbo.Orders
WHERE OrderID = ( SELECT Max(OrderID) FROM dbo.Orders );

[collapse]

Zadanie 12.

Z tabeli Products wybierz (ProductID, ProductName) produkty:

a) należące do kategorii nr 7

b) takie, gdzie cena jednostkowa jest większa niż 15

c) w cenie do 10 lub powyżej 50

d) których nazwa na drugim miejscu ma literę ‘e’

Baza: Northwind, Tabela: dbo.Products, Kolumny: ProductID, ProductName, CategoryID, UnitPrice, , Wyniki: a) 5 rows, b) 51 rows, c) 18 rows, d) 5 rows

Rozwiązanie

SELECT ProductID, ProductName

FROM dbo.Products

a) WHERE CategoryID = 7

b) WHERE UnitPrice > 15

c) WHERE UnitPrice < 10 OR UnitPrice > 50

d) WHERE ProductName LIKE '_e%'

[collapse]

Zadanie 11.

Z tabeli Orders wybierz (OrderID, CustomerID) zamówienia:

a) dostarczone między 1 maja a 15 października 1997

b) dostarczone do Australii, Niemiec i Wielkiej Brytanii

c) obsługiwane przez przewoźnika o id 2

d) dostarczone do miast, których nazwa zaczyna się na litery od A, B, C i D

Baza: Northwind, Tabela: dbo.Orders, Kolumny: OrderID, CustomerID, ShippedDate, ShipCountry, ShipVia, ShipCity, Wynik: a) 184 rows, b) 178 rows, c) 326 rows, d) 271 rows

Rozwiązanie

SELECT OrderID, CustomerID

FROM dbo.Orders

a) WHERE ShippedDate >= '19970501' AND ShippedDate < '19971016'

lub inaczej: WHERE ShippedDate BETWEEN '19970501' AND '19971015'

b) WHERE ShipCountry in('Australia', 'Germany', 'UK')

lub: WHERE ShipCountry = 'Australia' or ShipCountry = 'Germany' or ShipCountry = 'UK'

c) WHERE ShipVia = 2

d) WHERE ShipCity LIKE '[A-D]%'

[collapse]
« Starsze wpsiy Recent Entries »