SLQ - Semestr I
.
Wybieranie danych z pojedynczej tabeli. Baza NORTHWIND:
1. Wybierz nazwy i adresy wszystkich klientów
USE Northwind
SELECT CompanyName, Address FROM Customers
2. Wybierz nazwiska i numery telefonów pracowników
USE Northwind
SELECT Lastname, HomePhone FROM Employees
3. Wybierz nazwy i ceny produktów
USE Northwind
SELECT ProductName, UnitPrice FROM Products
4. Poka¿ wszystkie kategorie produktów (nazwy i opisy)
USE Northwind
SELECT CategoryName, Description FROM Categories
5. Poka¿ nazwy i adresy stron www dostawców
USE Northwind
SELECT CompanyName, HomePage FROM Suppliers
6. Wybierz nazwy i adresy wszystkich klientów maj¹cych siedziby w Londynie
USE Northwind
SELECT CompanyName, Address FROM Customers
WHERE City='London'
7. Wybierz nazwy i adresy wszystkich klientów maj¹cych siedziby we Francji lub w Hiszpanii
USE Northwind
SELECT CompanyName, Address, Country FROM Customers
WHERE Country='France' OR Country='Spain'
8. Wybierz nazwy i ceny produktów o cenie jednostkowej pomiêdzy 20.00 a 30.00
USE Northwind
SELECT ProductName, UnitPrice FROM Products
WHERE UnitPrice BETWEEN 20 AND 30
9. Wybierz nazwy i ceny produktów z kategorii “meat”
USE Northwind
SELECT ProductName, UnitPrice FROM Categories
INNER JOIN Products ON Products.CategoryID=Categories.CategoryID
WHERE CategoryName LIKE '%meat%'
10.
Wybierz nazwy produktów
oraz inf. o stanie magazynu dla produktów
dostarczanych przez firmê
“Tokyo Traders”
USE Northwind
SELECT ProductName, UnitsInStock FROM Suppliers
INNER JOIN Products ON Products.SupplierID=Suppliers.SupplierID
WHERE CompanyName='Tokyo Traders'
11.
Wybierz nazwy produktów
których nie ma w magazynieSzukamy informacji o
produktach
sprzedawanych w butelkach (bottle)
USE Northwind
SELECT ProductName, UnitsInStock,QuantityPerUnit FROM Products WHERE UnitsInStock=0 and QuantityPerUnit LIKE '%bottle%' --zero rekordow
13.
Wyszukaj informacje o stanowisku
pracowników, których
nazwiska zaczynaj¹
siê na literê
z
zakresu od B do L
USE Northwind
SELECT LastName, title FROM Employees
WHERE LastName LIKE '[B-L]%'
14. Wyszukaj informacje o stanowisku pracowników, których nazwiska zaczynaj¹ siê na literê B lub L
USE Northwind
SELECT LastName, title FROM Employees
WHERE LastName LIKE 'B%' OR LastName LIKE 'L%'
15. ZnajdŸ nazwy kategorii, które w opisie zawieraj¹ przecinek
USE Northwind
SELECT CategoryName, [Description] FROM Categories
WHERE [Description] LIKE '%,%'
16. ZnajdŸ klientów, którzy w swojej nazwie maj¹ w którymœ miejscu s³owo “Store”
USE Northwind
SELECT CompanyName FROM Customers
WHERE CompanyName LIKE '%Store%'
17. Szukamy informacji o produktach o cenach mniejszych ni¿ 10 lub wiêkszych ni¿ 20
USE Northwind
SELECT ProductName, UnitPrice FROM Products WHERE UnitPrice NOT BETWEEN 10 AND 20 ORDER BY UnitPrice
18.
Napisz instrukcjê
select tak aby wybraæ
numer zlecenia, datê
zamówienia, numer klienta dla
wszystkich
niezrealizowanych jeszcze zleceñ, dla których krajem odbiorcy jest
Argentyna
USE Northwind
SELECT OrderID, OrderDate, CustomerID, ShipCountry, ShippedDate FROM Orders
WHERE ShipCountry='Argentina' AND ShippedDate IS NULL
19.
Wybierz nazwy i kraje wszystkich
klientów, wyniki posortuj wed³ug
kraju, w ramach danego kraju
nazwy firm posortuj alfabetycznie
USE Northwind
SELECT CompanyName, Country FROM Customers
ORDER BY 2, 1
20.
Wybierz informacjê o
produktach (grupa, nazwa, cena), produkty posortuj wg grup a w
grupach
malej¹co wg ceny
USE Northwind
SELECT CategoryID, ProductName, UnitPrice FROM Products
ORDER BY 1, 3 DESC
21.
Wybierz nazwy i kraje wszystkich
klientów maj¹cych
siedziby w Japonii (Japan) lub we W³oszech
(Italy), wyniki posortuj
wed³ug kraju, w ramach danego kraju nazwy firm posortuj
alfabetycznie
USE Northwind
SELECT CompanyName, Country FROM Customers
WHERE Country='Japan' OR Country='Italy'
ORDER BY 2, 1
--nie ma Japan
Grupowanie, funkcje agreguj¹ce Baza NORTHWIND
1. Policz œredni¹ cenê jednostkow¹ dla wszystkich produktów w tabeli products.
USE Northwind
SELECT AVG(UnitPrice) as srednia FROM Products
2. Zsumuj wszystkie wartoœci w kolumnie quantity w tabeli order details
USE Northwind
SELECT SUM(Quantity) as ilosc FROM [order details]
3. Podaj liczbê produktów o cenach mniejszych ni¿ 10$ lub wiêkszych ni¿ 20$
USE Northwind
SELECT COUNT(ProductID) as ilosc FROM Products
WHERE UnitPrice<10 or UnitPrice>20
4. Podaj maksymaln¹ cenê produktu dla produktów o cenach poni¿ej 20$
USE Northwind
SELECT ProductID, UnitPrice FROM Products WHERE UnitPrice=(
SELECT MAX(UnitPrice) as Maks FROM Products WHERE UnitPrice<20)
5.
Podaj maksymaln¹ i
minimaln¹ i œredni¹
cenê produktu dla produktów
o produktach
sprzedawanych w butelkach (bottle)
USE Northwind
SELECT MAX(UnitPrice), MIN(UnitPrice), AVG(UnitPrice) FROM Products
WHERE QuantityPerUnit LIKE '%bottle%'
6. Wypisz informacjê o wszystkich produktach o cenie powy¿ej œredniej
USE Northwind
SELECT * FROM Products WHERE UnitPrice>(
SELECT AVG(UnitPrice) as srednia FROM Products)
7. Podaj sumê zamówienia o numerze 10250
USE Northwind
SELECT OrderID, SUM(UnitPrice*Quantity) as suma FROM [order details]
WHERE OrderID=10250
GROUP BY OrderID
8.
Napisz polecenie, które
zwraca informacje o zamówieniach z tablicy order details. Zapytanie
ma
grupowaæ i
wyœwietlaæ
identyfikator ka¿dego produktu a nastêpnie obliczaæ
ogóln¹
zamówion¹
iloϾ.
Ogólna iloœæ
jest sumowana funkcj¹
agreguj¹c¹
SUM i wyœwietlana jako jedna wartoœæ
dla ka¿dego
produktu.
USE Northwind
SELECT OrderID, SUM(Quantity) as ilosc FROM [order details]
GROUP BY OrderID
--???
9. Podaj maksymaln¹ cenê zamawianego produktu dla ka¿dego zamówienia
USE Northwind
SELECT OrderID, MAX(UnitPrice) as Maks FROM [order details]
GROUP BY OrderID
10. Posortuj zamówienia wg maksymalnej ceny produktu
USE Northwind
SELECT OrderID, MAX(UnitPrice) as Maks FROM [order details]
GROUP BY OrderID
ORDER BY 2
11. Podaj maksymaln¹ i minimaln¹ cenê zamawianego produktu dla ka¿dego zamówienia
USE Northwind
SELECT OrderID, MIN(UnitPrice)as MInu ,MAX(UnitPrice) as Maks FROM [order details]
GROUP BY OrderID
12. Podaj liczbê zamówieñ dostarczanych przez poszczególnych spedytorów
USE Northwind
SELECT ShipVia, COUNT(ShipVia) as ilosc FROM Orders
GROUP BY ShipVia
13. Który z spedytorów by³ najaktywniejszy w 1997 roku
USE Northwind
SELECT TOP 1 WITH TIES ShipVia, COUNT(ShipVia) as ilosc FROM Orders
GROUP BY ShipVia
ORDER BY 2
14. Wyœwietl zamówienia dla których liczba pozycji zamówienia jest wiêksza ni¿ 5
USE Northwind
SELECT OrderID, COUNT(OrderID) as ilosc FROM [order details]
GROUP BY OrderID
HAVING COUNT(OrderID)>5
15.
Wyœwietl klientów którzy dla których w 1998 roku
zrealizowano wiêcej ni¿ 8 zamówieñ
(wyniki
posortuj malej¹co wg ³¹cznej kwoty za dostarczenie
zamówieñ dla ka¿dego z klientów)
USE Northwind
SELECT CustomerID, COUNT(CustomerID) as ilosc FROM Orders
WHERE YEAR(OrderDate)=1997
GROUP BY CustomerID
HAVING COUNT(CustomerID)>8
£¹czenie danych z wielu tabel Baza NORTHWIND
1. Napisz polecenie zwracaj¹ce nazwy produktów i firmy je dostarczaj¹ce (tak aby produkty bez “dostarczycieli” i “dostarczyciele” bez produktów nie pojawiali siê w wyniku).
USE Northwind
SELECT ProductName, CompanyName FROM Products
INNER JOIN Suppliers ON Suppliers.SupplierID = Products.SupplierID
3.
Napisz polecenie
zwracaj¹ce jako wynik nazwy klientów,
którzy z³o¿yli zamówienia po 01 marca
1998
USE Northwind
SELECT * FROM Orders
INNER JOIN Customers ON Customers.CustomerID=Orders.CustomerId
WHERE YEAR(OrderDate) >= 1998 AND MONTH(OrderDate)>=3 AND DAY(OrderDate)>1
4. Napisz polecenie zwracaj¹ce wszystkich klientów z datami zamówieñ.
USE Northwind
SELECT CompanyName, OrderDate FROM Customers
INNER JOIN Orders ON Customers.CustomerID=Orders.CustomerID
Baza LIBRARY
1. Napisz polecenie, które wyœwietla listê dzieci bêd¹cych cz³onkami biblioteki
USE Library
SELECT firstname, lastname FROM juvenile
INNER JOIN member ON juvenile.member_no=member.member_no
2. Interesuje nas imiê, nazwisko i data urodzenia dziecka.
USE Library
SELECT firstname, lastname, birth_date FROM juvenile
INNER JOIN member ON juvenile.member_no=member.member_no
3. Napisz polecenie, które podaje tytu³y aktualnie wypo¿yczonych ksi¹¿ek
USE Library
SELECT DISTINCT title FROM loan
INNER JOIN title ON loan.title_no=title.title_no
4.
Podaj informacje o karach
zap³aconych za przetrzymywanie
ksi¹¿ki o tytule “Tao Teh King”.
Interesuje nas data oddania
ksi¹¿ki, ile dni by³a przetrzymywana i jak¹
zap³acono karê
USE library
SELECT loanhist.in_date, DATEDIFF(d,loanhist.in_date,loanhist.due_date), fine_paid FROM title
INNER JOIN loanhist ON loanhist.title_no=title.title_no
WHERE title.title = 'Tao Teh King' AND fine_assessed IS NOT NULL AND fine_assessed>0
5.
Napisz polecenie które
podaje listê ksi¹¿ek
(numery ISBN) zarezerwowanych przez osobê
o
nazwisku: Stephen A. Graff
USE library
SELECT isbn FROM member
INNER JOIN reservation ON reservation.member_no = member.member_no
WHERE member.lastname='Graff' AND member.firstname='Stephen' AND member.middleinitial='A'
Baza NORTHWIND
1.
Wybierz nazwy i ceny produktów o cenie jednostkowej pomiêdzy 20.00
a 30.00, dla ka¿dego
produktu podaj dane adresowe dostawcy
USE Northwind
SELECT ProductName, UnitPrice, CompanyName, Address FROM Products INNER JOIN Suppliers ON Suppliers.SupplierID=Products.SupplierID WHERE UnitPrice BETWEEN 20 AND 30
2.
Wybierz nazwy produktów
oraz inf. o stanie magazynu dla produktów
dostarczanych przez firmê
“Tokyo Traders”
USE Northwind
SELECT ProductName, UnitsInStock FROM Suppliers
INNER JOIN Products ON Products.SupplierID=Suppliers.SupplierID
WHERE CompanyName='Tokyo Traders'
3.
Wybierz nazwy i numery
telefonów dostawców,
dostarczaj¹cych produkty, których aktualnie nie
ma w
magazynie
USE Northwind
SELECT ProductName, CompanyName, Phone FROM Products INNER JOIN Suppliers ON Suppliers.SupplierID=Products.SupplierID WHERE UnitsInStock=0
4. Napisz polecenie zwracaj¹ce listê produktów zamawianych w dniu 1996-07-08.
USE Northwind
SELECT ProductName FROM Orders
INNER JOIN [Order Details] ON Orders.OrderID=[Order Details].OrderID
INNER JOIN Products ON [Order Details].ProductID=Products.ProductID
WHERE YEAR(OrderDate)=1996 AND MONTH(OrderDate)=7 and DAY(OrderDate)=8
5.
Wybierz nazwy i ceny produktów o cenie jednostkowej pomiêdzy 20.00
a 30.00, dla ka¿dego
produktu
podaj dane adresowe dostawcy, interesuj¹
nas tylko produkty z kategorii “Meat/Poultry”
USE Northwind
SELECT ProductName, UnitPrice, CompanyName, Address FROM Products INNER JOIN Categories ON Categories.CategoryID=Products.CategoryID INNER JOIN Suppliers ON Suppliers.SupplierID=Products.SupplierID WHERE UnitPrice BETWEEN 20 AND 30 AND CategoryName='Meat/Poultry'
6.
Wybierz nazwy i ceny
produktów z kategorii “Confections” dla
ka¿dego produktu podaj nazwê
dostawcy.
USE Northwind
SELECT ProductName, UnitPrice, CompanyName FROM Products INNER JOIN Categories ON Categories.CategoryID=Products.CategoryID INNER JOIN Suppliers ON Suppliers.SupplierID=Products.SupplierID WHERE CategoryName='Confections'
7.
Wybierz nazwy i numery telefonów klientów , którym w 1997
roku przesy³ki dostarcza³a firma
“United
Package”
USE Northwind
SELECT Customers.CompanyName, Customers.Phone FROM Shippers
INNER JOIN Orders ON Shippers.ShipperID=Orders.ShipVia
INNER JOIN Customers ON Customers.CustomerID=Orders.CustomerID
WHERE Shippers.CompanyName='United Package' AND YEAR(OrderDate)=1997
8. Wybierz nazwy i numery telefonów klientów, którzy kupowali produkty z kategorii “Confections”
USE Northwind
SELECT DISTINCT Customers.CompanyName, Customers.Phone, Categories.CategoryName FROM Categories
INNER JOIN Products ON Categories.CategoryID=Products.CategoryID
INNER JOIN [Order Details] ON [Order Details].ProductID=Products.ProductID
INNER JOIN Orders ON Orders.OrderID=[Order Details].OrderID
INNER JOIN Customers ON Customers.CustomerID=Orders.CustomerID
WHERE CategoryName='Confections'
Baza LIBRARY
1.
Napisz polecenie, które
wyœwietla listê
dzieci bêd¹cych cz³onkami biblioteki. Interesuje nas
imiê,
nazwisko, data urodzenia dziecka i
adres zamieszkania dziecka.
USE Library
SELECT firstname, lastname, birth_date, street FROM juvenile INNER JOIN member ON member.member_no=juvenile.member_no INNER JOIN adult ON adult.member_no=juvenile.adult_member_no
2.
Napisz polecenie, które
wyœwietla listê
dzieci bêd¹cych cz³onkami biblioteki. Interesuje nas
imiê,
nazwisko, data urodzenia dziecka,
adres zamieszkania dziecka oraz imiê i nazwisko rodzica.
--???
Baza NORTHWIND
1. Napisz polecenie, które wyœwietla listê wszystkich kupuj¹cych te same produkty.
USE joindb
SELECT a.buyer_id AS buyer1, a.prod_id,b.buyer_id AS buyer2
FROM sales AS a
JOIN sales AS b
ON a.prod_id = b.prod_id
WHERE a.buyer_id < b.buyer_id
2. Napisz polecenie, które pokazuje pary pracowników zajmuj¹cych to samo stanowisko
USE northwind
SELECT a.employeeid, LEFT(a.lastname,10) AS name
,LEFT(a.title,10) AS title
,b.employeeid, LEFT(b.lastname,10) AS name
,LEFT(b.title,10) AS title
FROM employees AS a
INNER JOIN employees AS b
ON a.title = b.title
WHERE a.employeeid < b.employeeid
3. Napisz polecenie, które wyœwietla pracowników oraz ich podw³adnych
USE Northwind
SELECT e1.lastname+' '+e1.firstname as szef, e2.lastname+' '+e2.firstname as podwladny FROM Employees
as e1
JOIN Employees as e2 ON e1.EmployeeID=e2.ReportsTo
ORDER BY 1
4. Napisz polecenie, które wyœwietla pracowników, którzy nie maj¹ podw³adnych
USE Northwind
SELECT FirstName+' '+Lastname FROM Employees
WHERE ReportsTo IS NULL
Baza LIBRARY
1.
Napisz polecenie, które
wyœwietla adresy cz³onków
biblioteki, którzy maj¹
dzieci urodzone przed 1
stycznia 1996
USE Library
SELECT street, city FROM adult
INNER JOIN juvenile ON adult.member_no=juvenile.adult_member_no
WHERE birth_date < '1996-01-01'
2.
Napisz polecenie, które
wyœwietla adresy cz³onków
biblioteki, którzy maj¹
dzieci urodzone przed 1
stycznia 1996. Interesuj¹ nas tylko
adresy takich cz³onków biblioteki, którzy aktualnie
nie
przetrzymuj¹ ksi¹¿ek.
USE Library
SELECT DISTINCT adult.member_no FROM adult
INNER JOIN juvenile ON adult.member_no=juvenile.adult_member_no
WHERE birth_date < '1996-01-01' AND adult.member_no NOT IN (SELECT DISTINCT member_no FROM loan)
USE Library
SELECT DISTINCT adult.member_no, adult.street,loan.member_no FROM adult
INNER JOIN juvenile ON adult.member_no=juvenile.adult_member_no
LEFT OUTER JOIN loan ON loan.member_no=adult.member_no
WHERE birth_date < '1996-01-01' AND loan.member_no IS NULL
3.
Napisz polecenie które
zwraca imiê i nazwisko (jako pojedyncz¹
kolumnê name), oraz informacje o
adresie: ulica, miasto, stan kod (jako
pojedyncz¹ kolumnê
address) dla wszystkich doros³ych cz³onków
biblioteki.
USE Library
SELECT firstname+' '+lastname as name, street+' '+city+' '+state+' '+zip as address FROM member
INNER JOIN adult ON adult.member_no=member.member_no
4.
Napisz polecenie, które
zwraca: isbn, copy_no, on_loan, title, translation, cover, dla
ksi¹¿ek o isbn
1, 500 i 1000. Wynik posortuj wg ISBN
USE Library
SELECT item.isbn, copy_no, on_loan, title, [translation], cover FROM item
INNER JOIN copy ON item.isbn=copy.isbn
INNER JOIN title ON title.title_no=copy.title_no
WHERE item.isbn=1 OR item.isbn=500 OR item.isbn=1000
ORDER BY item.isbn
5.
Napisz polecenie które zwraca o u¿ytkownikach biblioteki o nr 250,
342, i 1675 (dla ka¿dego
u¿ytkownika: nr, imiê i
nazwisko cz³onka biblioteki), oraz
informacjê o zarezerwowanych ksi¹¿kach
(isbn, data)
USE Library
SELECT member.member_no, firstname, lastname, isbn, log_date FROM member
INNER JOIN reservation ON reservation.member_no=member.member_no
WHERE member.member_no=250 OR member.member_no=342 OR member.member_no=1675
6. Podaj listê cz³onków biblioteki mieszkaj¹cych w Arizonie (AZ) maj¹ wiêcej ni¿ dwoje dzieci zapisanych do biblioteki
USE Library
SELECT adult_member_no, count(juvenile.member_no) as ilosc_dzieci, lastname+' '+firstname FROM
juvenile
INNER JOIN member ON member.member_no=juvenile.adult_member_no
GROUP BY adult_member_no, lastname+' '+firstname
HAVING count(juvenile.member_no)>2
Baza NORTHWIND
1. Dla ka¿dej kategorii produktu, podaj ³¹czn¹ liczbê zamówionych jednostek
USE Northwind
SELECT Categories.CategoryName, Sum([order details].Quantity) as ilosc FROM [order details]
INNER JOIN Products ON [order details].productID=products.productID
INNER JOIN Categories ON products.CategoryID=Categories.CategoryID
GROUP BY Categories.CategoryName
ORDER BY 2
2. Dla ka¿dego zamówienia podaj ³¹czn¹ liczbê zamówionych jednostek
USE Northwind
SELECT OrderID, Sum(Quantity) as ilosc FROM [Order Details]
GROUP BY OrderID
3.
Zmodyfikuj poprzedni
przyk³ad, aby pokazaæ
tylko takie zamówienia, dla których ³¹czna liczba
jednostek jest
wiêksza ni¿ 250
USE Northwind
SELECT OrderID, Sum(Quantity) as ilosc FROM [Order Details]
GROUP BY OrderID
HAVING Sum(Quantity)>250
Podzapytania Baza NORTHWIND
1.
Wybierz nazwy i numery telefonów klientów , którym w 1997
roku przesy³ki dostarcza³a firma
“United
Package”
USE Northwind
SELECT Customers.CompanyName, Customers.Phone, Orders.OrderID,ShipVia FROM Shippers
INNER JOIN Orders ON Orders.ShipVia=Shippers.ShipperID
INNER JOIN Customers ON Customers.CustomerID=Orders.CustomerID
WHERE Shippers.CompanyName='United Package' AND YEAR(Orders.ShippedDate)=1997
2. Wybierz nazwy i numery telefonów klientów, którzy kupowali produkty z kategorii “Confections”
USE Northwind
SELECT DISTINCT Customers.CompanyName, Customers.Phone FROM Categories
INNER JOIN Products ON Products.CategoryID=Categories.CategoryID
INNER JOIN [order details] ON [order details].ProductID=Products.ProductID
INNER JOIN Orders ON Orders.OrderID=[order details].OrderID
INNER JOIN Customers ON Customers.CustomerID=Orders.CustomerID
WHERE CategoryName='Confections'
3.
Wybierz nazwy i numery telefonów klientów, którzy nie
kupili ¿adnego produktu z kategorii
Confections
USE Northwind
SELECT CompanyName, Phone FROM Customers
WHERE CompanyName NOT IN (
SELECT DISTINCT Customers.CompanyName FROM Categories
INNER JOIN Products ON Products.CategoryID=Categories.CategoryID
INNER JOIN [order details] ON [order details].ProductID=Products.ProductID
INNER JOIN Orders ON Orders.OrderID=[order details].OrderID
INNER JOIN Customers ON Customers.CustomerID=Orders.CustomerID
WHERE CategoryName='Confections')
4.
Wybierz nazwy i numery telefonów klientów, którzy kupili
wiêcej ni¿ 3 ró¿ne produkty z
kategorii
“Confections”
USE Northwind
SELECT Customers.CompanyName, COUNT([order details].ProductID) FROM Categories
INNER JOIN Products ON Products.CategoryID=Categories.CategoryID
INNER JOIN [order details] ON [order details].ProductID=Products.ProductID
INNER JOIN Orders ON Orders.OrderID=[order details].OrderID
INNER JOIN Customers ON Customers.CustomerID=Orders.CustomerID
WHERE CategoryName='Confections'
GROUP BY Customers.CompanyName
HAVING COUNT([order details].ProductID)>3
ORDER BY 1
5. Dla ka¿dego produktu podaj maksymaln¹ liczbê zamówionych jednostek
USE Northwind
SELECT Products.ProductID, MAX(Quantity) FROM Products
RIGHT OUTER JOIN [order details] ON [order details].ProductID=Products.ProductID
GROUP BY Products.ProductID
ORDER BY 1
6. Podaj wszystkie produkty których cena jest mniejsza ni¿ œrednia cena produktu
USE Northwind
SELECT Products.ProductID, UnitPrice, srednia FROM Products
INNER JOIN (SELECT Products.ProductID, avg(t2.UnitPrice) as srednia FROM Products
INNER JOIN (SELECT DISTINCT ProductID, UnitPrice FROM [order details]) as t2 ON t2.ProductID=Products.ProductID
GROUP BY Products.ProductID) as t2 ON t2.ProductID=Products.ProductID --WHERE UnitPrice<srednia -- inaczej zero rekordow Order by 1
7. Podaj wszystkie produkty których cena jest mniejsza ni¿ œrednia cena produktu danej kategorii
USE Northwind
SELECT ProductID, UnitPrice,srednia, Products.CategoryId FROM Products
INNER JOIN (SELECT Categories.CategoryID, AVG(Products.UnitPrice) as srednia FROM Categories INNER JOIN Products ON Products.CategoryID=Categories.CategoryID GROUP BY Categories.CategoryID) as t2 ON t2.CategoryID=Products.CategoryID
WHERE UnitPrice<srednia
ORDER BY 1
8.
Dla ka¿dego
produktu podaj jego nazwê,
cenê, œredni¹
cenê wszystkich produktów
oraz ró¿nicê
miêdzy cen¹ produktu a
œredni¹ cen¹ wszystkich produktów
USE Northwind
SELECT ProductName, UnitPrice, (SELECT AVG(UnitPrice) FROM Products),
UnitPrice - (SELECT AVG(UnitPrice) FROM Products) as roznica FROM Products
9.
Dla ka¿dego
produktu podaj jego nazwê
kategorii, nazwê produktu, cenê,
œredni¹
cenê wszystkich
produktów
danej kategorii oraz ró¿nicê
miêdzy cen¹
produktu a œredni¹
cen¹ wszystkich produktów
danej kategorii.
USE Northwind
SELECT CategoryName, ProductName, UnitPrice, srednia, UnitPrice-srednia as roznica FROM Products
INNER JOIN (
SELECT Products.CategoryID, AVG(Products.UnitPrice) as srednia FROM Products
GROUP BY Products.CategoryID) as t2 ON t2.CategoryID=Products.CategoryID
INNER JOIN Categories ON Categories.CategoryID=Products.CategoryID
10. Podaj ³¹czn¹ wartoœæ zamówienia o numerze 1025 (uwzglêdnij cenê za przesy³kê)
USE Northwind
SELECT
(SELECT SUM(UnitPrice*Quantity*(1-Discount)) FROM [order details] WHERE OrderID=10250)
+
(SELECT freight FROM orders WHERE OrderID=10250) as wynik
11. Podaj ³¹czn¹ wartoœæ zamówieñ ka¿dego zamówienia (uwzglêdnij cenê za przesy³kê)
USE Northwind
SELECT orders.OrderID, freight, suma, Freight+suma as total FROM orders
INNER JOIN (SELECT OrderID, SUM(UnitPrice*Quantity*(1-Discount)) as suma FROM [order details]
GROUP BY OrderID) as t2 ON t2.OrderID=Orders.OrderID
12.
Czy s¹
jacyœ klienci którzy nie z³o¿yli ¿adnego zamówienia w 1997 roku, jeœli
tak to poka¿ ich
dane adresowe
USE Northwind
SELECT CustomerID, CompanyName, Address FROM Customers
WHERE CustomerID NOT IN
(SELECT DISTINCT Orders.CustomerID FROM Orders WHERE YEAR(OrderDate)=1997)
13. Podaj produkty kupowane przez wiêcej ni¿ jednego klienta
USE Northwind
SELECT ProductID, count(CustomerID) as ilosc_klientow FROM [order details]
INNER JOIN Orders ON Orders.OrderID=[order details].OrderID
GROUP BY ProductID
HAVING count(CustomerID)>1
ORDER BY 2