Archiwa tagu: adventureworks

Northwind 35. Wyświetl klientów którzy złożyli największą liczbę zamówień.

Baza : Northwind

Ćwiczenie nr: 35

Treść ćwiczenia: Wyświetl klientów którzy złożyli największą liczbę zamówień.

Polecenia/funkcje w zapytaniu: SELECT, SELECT TOP, FROM, WHERE, COUNT(), DECLARE SET, GROUP BY, ORDER BY


northwind tutorial practical exercises examples samples queries sql sql server  northwind tutorial practical exercises examples samples queries sql sql server 


Rozwiązanie:

Zapytanie:

Na początku zadeklarujmy sobie zmienną @ile do które "wrzucimy" największą liczbę zamówień, bo może się zdarzyć, że kilku klientów złożyło tyle samo zamówień.

DECLARE @ile int =
    (
        SELECT TOP 1
            COUNT(*)
        FROM    
            Orders O
        GROUP BY
            O.CustomerID
        ORDER BY
            COUNT(*) DESC
    );

Teraz utworzymy główne zapytanie w którym wykorzystamy zmienną @ile

SELECT
     O.CustomerID AS IdentyfikatorKlienta
    ,COUNT(*) AS Ile
FROM    
    Orders O
GROUP BY
    O.CustomerID
HAVING
    COUNT(*) = @ile

Wynik uruchomienia zapytania

Liczba rekordów: 1

northwind tutorial practical exercises examples samples queries sql sql server

Pobierz skrypt sql


northwind tutorial practical exercises examples samples queries sql sql server  northwind tutorial practical exercises examples samples queries sql sql server 


 

Northwind 34. Wyświetl informacje o pierwszym i ostatnim zamówieniu.

Baza : Northwind

Ćwiczenie nr: 34

Treść ćwiczenia: Wyświetl dane dotyczace pierwszego i ostatniego zamówienia. Zakres danych: Identyfikator zamówienia, Liczba pozycji w zamówieniu, Wartość zamówienia.

Polecenia/funkcje w zapytaniu: SELECT, SELECT TOP, FROM, WHERE, COUNT(), SUM(), INNER JOIN, GROUP BY, ORDER BY


northwind tutorial practical exercises examples samples queries sql sql server  northwind tutorial practical exercises examples samples queries sql sql server northwind tutorial practical exercises examples samples queries sql sql server


Rozwiązanie:

Zapytanie:

SELECT
          'Pierwsze zamówienie' AS Info
         ,D.OrderID AS IdentyfikatorZamowienia
         ,COUNT(*) AS LiczbaPozycji
         ,SUM(D.Quantity*D.UnitPrice) AS WartoscZamowienia
    FROM    
        (
        SELECT TOP 1
            O.OrderID
        FROM
            Orders O
        ORDER BY
            O.OrderDate, O.OrderID
        ) AS SQ
        JOIN [Order Details] D ON SQ.OrderID = D.OrderID
    GROUP BY
        D.OrderID
 
 UNION ALL
 
  SELECT
          'Ostatnie zamówienie' AS Info
         ,D.OrderID AS IdentyfikatorZamowienia
         ,COUNT(*) AS LiczbaPozycji
         ,SUM(D.Quantity*D.UnitPrice) AS WartoscZamowienia
    FROM    
        (
        SELECT TOP 1
            O.OrderID
        FROM
            Orders O
        ORDER BY
            O.OrderDate DESC, O.OrderID DESC
        ) AS SQ
        JOIN [Order Details] D ON SQ.OrderID = D.OrderID
    GROUP BY
        D.OrderID

Wynik uruchomienia zapytania

Liczba rekordów: 2

northwind tutorial practical exercises examples samples queries sql sql server

Pobierz skrypt sql


northwind tutorial practical exercises examples samples queries sql sql server  northwind tutorial practical exercises examples samples queries sql sql server northwind tutorial practical exercises examples samples queries sql sql server


 

AdventureWorks jak zainstalować? AdventureWorks how to install?

AdventureWorks jak zainstalować? AdventureWorks how to install?

Jak ściągnąć plik bazy AdventureWorks dowiesz się tutaj.

Po pobraniu pliku bazy AdventureWorks możemy przystąpić do instalacji tej bazy w środowisku SQL Server (u nas w wersji 2008 R2 express).

1.     W pliku (archiwum) które ściągnąłeś z Internetu znajdują sie dwa pliki o rozszerzeniach .MDF i .LDF. Rozpakowujemy plik i oba pliki kopiujemy do katalogu C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA (to jest lokalizacja domyśla jeśli przy instalacji wybrałeś inna posługuj się nią dalej).
2.   Teraz uruchom Management Studio i połącz się z odpowiednim serwerem przyciskiem "connect" (jeżeli nic nie zmieniałeś to w polu server name masz wybrany Twój domyślny wystarczy tylko kliknąć w connect).
3.   W oknie "Object Explorer" (jeśli go nie masz wciśnij F8) na gałęzi "Databases" kliknij prawym przyciskiem myszy i z menu kontekstowego wybierz opcję "Attach…".
4.   Pojawi się nowe okno "Attach Database".  Mniej więcej w połowie okna jest przycisk "Add…". Kliknij w niego.
5   W nowym oknie "Locate Database File" musisz wskazać lokalizację pliku bazy AdventureWorks, czyli pliku o nazwie AdventureWorks2008R2_Data.mdf. W tym celu odnaleź na gałęzi lokalizację z pkt.1, czyli C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA (lub Twoja jeśli jest inna niż domyślna), wskaż plik AdventureWorks2008R2_Data.mdf i potwierdź przyciskiem "OK.
6.   W tym momencie powinieneś wrócić do okna o nazwie "Attach Database". W części "Database to attach:" powinnieneś widzieć ścieżkę do pliku który przed chwilą wskazałeś. Potwierdź swój wybór przyciskiem "OK".
7.   Powinieneś wrócić do okna głównego Management Studio. W oknie "Object Explorer" rozwiń gałąź "Databases" (plusikiem). Jeśli nie zobaczy tam bazy AdventureWorks2008R2 odśwież tą gałąź klikając prawym przyciskiem myszy na "Databases" i wybierz opcję "Refresh". W tym momencie na pewno baza danych AdventureWorks2008R2 powinna się pojawić.

 

Adventureworks skąd pobrać? Adventureworks database download.

Adventureworks skąd pobrać? Adventureworks database download.

Baza Adventureworks jest treningową bazą danych firmy Microsoft dla środowiska SQL Server. Link do bazy znajdziesz na naszym portalu tutaj. Informacje jak zainstalować SQL Server w wersji express znajdziesz tutaj: skąd pobrać i jak zainstalować. Możesz też skorzystać z bezpośredniego linku tutaj.

Dzięki bazie Adventureworks możesz szlifować swoje umiejętności w programowaniu w języku SQL.

1.     W pole adres w przeglądarce wpisujemy adres http://msftdbprodsamples.codeplex.com/downloads/get/478216
2.   Po wyświetleniu strony po ok. 3 sekundach otworzy się kolejne okienku  o nazwie "Otwieranie AdventureWorks2008R2_Database.zip" i będziesz miał możliwość zapisać plik bazy danych na twardy dysk Twojego komputera.
3.   W tym celu zaznaczamy radiobutton przy opcji "Zapisz Plik" i klikamy na OK.
4.   Kolejny krok to wskazanie gdzie system na zapisać plik na Twoim twardym dysku. W oknie które się otworzyło wskazujesz lokalizację pliku (gdzie plik ma się zapisać) i potwierdzasz przyciskiem "Zapisz".
5.   W tym momecie nastąpi pobieranie pliku bazy danych adventureworks z Internetu. Plik ma ok 35 MB więc zostanie pobrany w czasie zależnym od łącza jakim dysponjesz.
6.   Po ściągnięciu pliku w lokalizacji którą wskazałeś pojawi się plik o nazwie AdventureWorks2008R2_Database.zip

 

 

 

Adventureworks 25. Oblicz sumę zamówień o największej i najmniejszej wartości.

Baza : Adventureworks

Ćwiczenie nr: 25

Treść ćwiczenia: Oblicz sumę zamówień o największej i najmniejszej wartości.

Polecenia/funkcje w zapytaniu: SELECT, FROM, SUM(), TOP, Aliasy, GROUP BY, ORDER BY


   


Rozwiązanie:

 

Zapytanie:

SELECT
    (
        SELECT TOP 1
            SUM(D.OrderQty * D.UnitPrice)AS Suma
        FROM
            Sales.SalesOrderHeader Z JOIN Sales.SalesOrderDetail D
                ON Z.SalesOrderID = D.SalesOrderID
        GROUP BY
            Z.SalesOrderID        
        ORDER BY
            Suma DESC
    )
    +
    (
        SELECT TOP 1
            SUM(D.OrderQty * D.UnitPrice)AS Suma
        FROM
            Sales.SalesOrderHeader Z JOIN Sales.SalesOrderDetail D
                ON Z.SalesOrderID = D.SalesOrderID
        GROUP BY
            Z.SalesOrderID        
        ORDER BY
            Suma     
    )
    AS [SumaZamówień(Min.Max.)]   

Zdanie wyjaśnienia

to zadanie możemy rozwiązać na dwa sposoby.
1. Uwzględniając kwotę rabatu
2. Nie uwzględniając kwotę rabatu.

Powyższe zapytania nie uwzględnia kwoty rabatu. Jeżeli chcielibyśmy ją uwzględnić musimy posłużyć się innymi kolumnami. Jeżeli interesuje nas cena za wszystkie sztuki danego produktu w zamówieniu, to musimy posłużyć się kolumną "LineTotal" z tabeli "Sales.SalesOrderDetail", obliczenia dla tej kolumny uzyskujemy ze wzoru:

UnitPrice * (1-UnitPriceDiscount) * OrderQty

gdzie:
UnitPrice – to cena sprzedaży za sztukę produtku,
UnitPriceDiscount – to kwota rabatu a
OrderQty – to ilość zamówionych produktów.

czyli reasumując LineTotal to wartość zamówienia dla pojedynczego produktu w zamówieniu (uzwględniająca rabat i ilość zamówionego produktu).

Jeżeli interesuje nas ogólna wartość zamówienia (z uwzględnieniem rabatu) to możemy posłużyć się kolumną "SubTotal" a tabeli "Sales.SalesOrderHeader". Ta kolumną przechowuje wartości obliczone za pomocą formuły SUM(SalesOrderDetail.LineTotal)

Wynik uruchomienia zapytania

Liczba rekordów: 1

Pobierz skrypt sql


   


 

Northwind 25. Oblicz sumę zamówień o największej i najmniejszej wartości.

Baza : Northwind

Ćwiczenie nr: 25

Treść ćwiczenia: Oblicz sumę zamówień o największej i najmniejszej wartości.

Polecenia/funkcje w zapytaniu: SELECT, FROM, WHERE, Aliasy, SUM(), INNER JOIN, COUNT(), GROUP BY, ORDER BY


   


Rozwiązanie:

 

Zapytanie:

Wynik uruchomienia zapytania

Liczba rekordów: 1

Pobierz skrypt sql


   


 

Northwind 24. Który spedytor obsłużył zamówienia na największą wartość.

Baza : Northwind

Ćwiczenie nr: 24

Treść ćwiczenia: Który spedytor obsłużył zamówienia na największą wartość.

Polecenia/funkcje w zapytaniu: SELECT, FROM, WHERE, Aliasy, SUM(), INNER JOIN, COUNT(), GROUP BY, ORDER BY


   


Rozwiązanie:

 

Zapytanie:

Wynik uruchomienia zapytania

Liczba rekordów: 1 dla każdego sposobu

Pobierz skrypt sql