Radosław Wolicki 19 11 2012

Radosław Wolicki

Kierunek: ETI

Rok: III

Grupa: II

Lab. Bazy Danych

Prowadzący :

Andrzej Z. Sikorski

Data Ćwiczenia:

19-11-2012



Ćwiczenie nr.8



Bazy danych - Laboratorium zestaw 5

Zaawansowane techniki wykorzystywania zapytań zagnieżdżonych

Baza Northwind


1) Wyznaczyć najlepsze miesiące po względem obrotów dla poszczególnych lat, które obejmuje baza danych Northwind


select SUM(Quantity*UnitPrice) as 'Cena',Year(o.OrderDate)as 'Rok',Month(o.OrderDate) as 'Miesi¹c' from [Order Details] od , Orders o

where

od.OrderID=o.OrderID

group by

Year(o.OrderDate),Month(o.OrderDate)











2) Dla każdego miesiąca (w poszczególnych latach) wyznaczyć pracownika, który wygenerował największe dochody



select YEAR(o1.OrderDate) as 'Rok',MONTH(o1.orderDate) as 'Miesi¹c',

(

select EmployeeID from [Order Details] od,Orders o

where

od.OrderID=o.OrderID and

YEAR(OrderDate)=YEAR(o1.OrderDate) and MONTH(OrderDate)=MONTH(o1.OrderDate)

group by

EmployeeID,EmployeeID ,YEAR(OrderDate) ,MONTH(OrderDate)

having SUM(Quantity*unitPrice)=

(

select max(total) from

(

select SUM(Quantity*unitPrice)total ,EmployeeID ,YEAR(OrderDate) y,MONTH(OrderDate) m from [Order Details] od,Orders o

where

od.OrderID=o.OrderID and

YEAR(OrderDate)=YEAR(o1.OrderDate) and MONTH(OrderDate)=MONTH(o1.OrderDate)

group by

EmployeeID,EmployeeID ,YEAR(OrderDate) ,MONTH(OrderDate)

) t

)




) [The Best Sales Representative of the Month]



from Orders o1 group by YEAR(o1.OrderDate),MONTH(o1.orderDate)
























3) Zmodyfikować zapytanie z p.2 tak by znajdowało najlepszą: kategorię, produkt,

klienta, kraj (pole country w tabelce Customers)


select SUM(Quantity*unitPrice)total ,EmployeeID ,YEAR(OrderDate) y,MONTH(OrderDate) m from [Order Details] od,Orders o

where

od.OrderID=o.OrderID


group by

EmployeeID,YEAR(OrderDate),MONTH(OrderDate)

order by 3,4

select SUM(Quantity*unitPrice)total ,EmployeeID ,YEAR(OrderDate) y,MONTH(OrderDate) m from [Order Details] od,Orders o

where

od.OrderID=o.OrderID and

YEAR(OrderDate)=1996 and MONTH(OrderDate)=7

group by

EmployeeID,EmployeeID ,YEAR(OrderDate) ,MONTH(OrderDate)


select max(total) from

(

select SUM(Quantity*unitPrice)total ,EmployeeID ,YEAR(OrderDate) y,MONTH(OrderDate) m from [Order Details] od,Orders o

where

od.OrderID=o.OrderID and

YEAR(OrderDate)=1996 and MONTH(OrderDate)=7

group by

EmployeeID,EmployeeID ,YEAR(OrderDate) ,MONTH(OrderDate)

) t



select SUM(Quantity*unitPrice)total ,EmployeeID ,YEAR(OrderDate) y,MONTH(OrderDate) m from [Order Details] od,Orders o

where

od.OrderID=o.OrderID and

YEAR(OrderDate)=1996 and MONTH(OrderDate)=7

group by

EmployeeID,EmployeeID ,YEAR(OrderDate) ,MONTH(OrderDate)

having SUM(Quantity*unitPrice)=

(

select max(total) from

(

select SUM(Quantity*unitPrice)total ,EmployeeID ,YEAR(OrderDate) y,MONTH(OrderDate) m from [Order Details] od,Orders o

where

od.OrderID=o.OrderID and

YEAR(OrderDate)=1996 and MONTH(OrderDate)=7

group by

EmployeeID,EmployeeID ,YEAR(OrderDate) ,MONTH(OrderDate)

) t

)


select YEAR(o1.OrderDate),MONTH(o1.orderDate) from Orders o1 group by YEAR(o1.OrderDate),MONTH(o1.orderDate)




select YEAR(o1.OrderDate),MONTH(o1.orderDate) ,

(

select EmployeeID from [Order Details] od,Orders o

where

od.OrderID=o.OrderID and

YEAR(OrderDate)=YEAR(o1.OrderDate) and MONTH(OrderDate)=MONTH(o1.OrderDate)

group by

EmployeeID,EmployeeID ,YEAR(OrderDate) ,MONTH(OrderDate)

having SUM(Quantity*unitPrice)=

(

select max(total) from

(

select SUM(Quantity*unitPrice)total ,EmployeeID ,YEAR(OrderDate) y,MONTH(OrderDate) m from [Order Details] od,Orders o

where

od.OrderID=o.OrderID and

YEAR(OrderDate)=YEAR(o1.OrderDate) and MONTH(OrderDate)=MONTH(o1.OrderDate)

group by

EmployeeID,EmployeeID ,YEAR(OrderDate) ,MONTH(OrderDate)

) t

)




) [The Best Sales Representative of the Month]


from Orders o1 group by YEAR(o1.OrderDate),MONTH(o1.orderDate)



4) Dla poszczególnych miesięcy wyznaczyć kraj o największej średniej wartości

zamówienia


5) Dla każdego miesiąca wyznaczyć kategorie, których produkty nie były zamówione


6) To samo co p.5 dla produktów


7) Rozwiązać zadania 5 i 6 nie posługując się operatorem exists (ani też zagnieżdżonym

zapytaniem z funkcją count – co w sumie na jedno wychodzi)


8) Korzystając z zapytania ułożonego w zadaniu 5 , znaleźć dla miesięcy liczbę

produktów niesprzedawanych


9) Idziemy za ciosem: w jakim miesiącu tych produktów było najwięcej


10) Łagodne wprowadzenie do tematu następnego wykładu: Znaleźć pracowników

którzy sprzedają wszystkie produkty (tj. dla każdego produktu istnieje pozycja Orders/[Order Details] tego pracownika) Baza CJDate


1) Statystyki dwuwymiarowe: w kolumnach miasta projektów (J), w wierszach miasta

dostawców (S), na przecięciu sumaryczny ciężar (iloczyn SPJ.QTY i P.WEIGHT)


2) Zadanie z książki (CJDate) polskie wyd. zadanie 7.5 (w pliku PDF zadanie 8.5 wyd. 8)

(FORALL – dla każdego, EXISTS istnieje) ułożyć zapytanie w SQL odpowiadające

formule rachunku krotek użytej w książce. Podaj nazwę części i miasto dla części

dostarczanych z Paryża przez każdego dostawcę z Londynu w liczbie <500 Visual Studio



1) Korzystając z przykładów z poprzednich ćwiczeń uruchomić wybrane rozwiązania

zadań 1-10 dla bazy Northwind w postaci aplikacji C#/.NET.




2) Utworzyć aplikację Okienkową i nawiązać z niej połączenie z bazą danych.

Korzystając z dostępnych komponentów wizualnych wyświetlić zbiory wynikowe dla

wybranych rozwiązań zadań lub dla zapytań w wykładu.

Pytania powtórkowe

Określić jaki zbiór wynikowy znajduje poniższe zapytanie

select m,y,count(*) from

(

select m,y,ProductName from

(select Year(OrderDate) y,Month(OrderDate) m

from Orders o

group by Year(OrderDate),Month(OrderDate)) t,Products p

where

exists

(

select * from Products,[Order Details], Orders

where

p.ProductID=[Order Details].ProductID and

[Order Details].OrderID=Orders.OrderID and

t.m=Month(OrderDate) and

t.y=Year(OrderDate)

)

)t1 group by y,m

Przekształcić zapytanie do postaci bez operatora exists, tak aby znajdowało ten sam zbiór

wynikowy.













Wyszukiwarka

Podobne podstrony:
Radosław Wolicki 26 11 2012
Radosław Wolicki 12 11 2012
19 11 2012 Wykład MAŁŻE, GŁOWONOGI
wykład-VII-19.11.2012, Praca Socjalna UŚ, zarządzanie i organizacja w pomocy społecznej
19 11 2012
Katarzyna Grabowska ID I0 12 19 11 2012
19 11 2012
Radoslaw Wolicki 17 12 2012
Hydrologia 2 06 11 2012
22 11 2012 traduction
Ekologia 14.11.2012, Ekologia i Ochrona środowiska
wiczenia Makroekonomia 19.11, SEMESTR I, makroekonomia
05.11.2012, Pedagogika specjalna - wykłady
Rodzina w religiach świata  11 2012
Lektorat z dnia$ 11 2012
Ekonomika Wyklad 6,0 11 2012
23 11 2012
Barclays Premier League 11 2012

więcej podobnych podstron