Archiwum kategorii: ADVENTUREWORKS

Adventureworks 40. Wyświetl zamówienia (najmniejsza i największa wartość + ich suma)

SQL tutorial. AdventureWorks exercises. SQL SERVER.

Baza: AdventureWorks

Zadanie nr: 40

Treść:  Wyświetl zamówienia (najmniejsza i największa wartość). Użyj tabeli tymczasowej.

Polecenia/funkcje w zapytaniu: SELECT, FROM, CREATE TABLE, INSERT INTO, UNION ALL, SUM(), Tabela tymczasowa


SQL tutorial. AdventureWorks exercises SQL SERVER  SQL tutorial. AdventureWorks exercises SQL SERVER


Rozwiązanie:

Zapytanie:

  

— Tworzymy tabelę tymczasową do zapisu wyników poszczególnyc zapytań
CREATE TABLE #tymczasowa(
     info varchar(40)
    ,wartosc money
)

— Znajdujemy zamówienie o najmniejsze wartości
— i wrzucamy wynik do tabeli tymczasowej

INSERT INTO #tymczasowa
        SELECT
             'Zamówienie o najmniejszej wartości'
            ,MIN(O.SubTotal)
        FROM
            Sales.SalesOrderHeader O    

— Znajdujemy zamówienie o największej wartości
— i wrzucamy wynik do tabeli tymczasowej

INSERT INTO #tymczasowa
        SELECT
             'Zamówienie o największej wartości'
            ,MAX(O.SubTotal)
        FROM
            Sales.SalesOrderHeader O

— prezentujemy wynik
SELECT
    *
FROM
    #tymczasowa    

UNION ALL                

SELECT
     'SUMA'
    ,SUM(#tymczasowa.wartosc)
FROM
    #tymczasowa    

— opcjonalnie możemy usunąć tablę tymczasową    
DROP TABLE #tymczasowa   

Wynik:

SQL tutorial. AdventureWorks exercises. SQL SERVER.

Pobierz skrypt sql


SQL tutorial. AdventureWorks exercises SQL SERVER  SQL tutorial. AdventureWorks exercises SQL SERVER


 

Adventureworks 39. Pracownicy pogrupowani wg dat zatrudnienia.

SQL tutorial. AdventureWorks exercises. SQL SERVER.

Baza: AdventureWorks

Zadanie nr: 39

Treść:  Pracownicy pogrupowani wg dat zatrudnienia.

Polecenia/funkcje w zapytaniu: SELECT, FROM, ORDER BY, GROUP BY, YEAR(), COUNT()


SQL tutorial. AdventureWorks exercises SQL SERVER  SQL tutorial. AdventureWorks exercises SQL SERVER SQL tutorial. AdventureWorks exercises SQL SERVER


Rozwiązanie:

Zapytanie:

    SELECT
     SQ.GRUPA AS Grupa
    ,COUNT(*) AS LiczbaPracowników
FROM
    (    
        SELECT
             YEAR(E.HireDate) AS Rok
            ,(CASE
                WHEN YEAR(E.HireDate) < 2000
                    THEN '1. Zatrudnieni przed 2000 r.'
                WHEN (YEAR(E.HireDate) >= 2000 AND YEAR(E.HireDate) <= 2005)
                    THEN '2. Zatrudnieni pomiędzy 2000-2005 r.'
                WHEN YEAR(E.HireDate) > 2005
                    THEN '3. Zatrudnieni po 2005 r.'
            END)AS GRUPA                
        FROM
            HumanResources.Employee E            
    )AS SQ
GROUP BY
    SQ.GRUPA    
ORDER BY
    1

Wynik:

SQL tutorial. AdventureWorks exercises. SQL SERVER.

Pobierz skrypt sql


SQL tutorial. AdventureWorks exercises SQL SERVER  SQL tutorial. AdventureWorks exercises SQL SERVER SQL tutorial. AdventureWorks exercises SQL SERVER


 

Adventureworks 38. Zaprezentuj zestawienie sprzedaży w latach (liczba zamówień, wartość zamówień).

SQL tutorial. AdventureWorks exercises. SQL SERVER.

Baza: AdventureWorks

Zadanie nr: 38

Treść:  Zaprezentuj zestawienie sprzedaży w latach (liczba zamówień, wartość zamówień).

Polecenia/funkcje w zapytaniu: SELECT, FROM, ORDER BY, GROUP BY, YEAR(), COUNT(), SUM()


SQL tutorial. AdventureWorks exercises SQL SERVER  SQL tutorial. AdventureWorks exercises SQL SERVER SQL tutorial. AdventureWorks exercises SQL SERVER


Rozwiązanie:

Zapytanie:

    SELECT
     YEAR(O.OrderDate) AS Rok
    ,COUNT(*) AS LiczbaZamowien
    ,SUM(O.SubTotal) AS WartoscZamowien
FROM    
    Sales.SalesOrderHeader O    
GROUP BY
    YEAR(O.OrderDate)
ORDER BY
    1,2 DESC,3 DESC   

Wynik:

SQL tutorial. AdventureWorks exercises. SQL SERVER.

Pobierz skrypt sql


SQL tutorial. AdventureWorks exercises SQL SERVER  SQL tutorial. AdventureWorks exercises SQL SERVER SQL tutorial. AdventureWorks exercises SQL SERVER


 

Adventureworks 37. Oblicz i wyświetl wartość pierwszego i ostatniego zamówienia.

SQL tutorial. AdventureWorks exercises. SQL SERVER.

Baza: AdventureWorks

Zadanie nr: 37

Treść:  Oblicz i wyświetl wartość pierwszego i ostatniego zamówienia.

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


SQL tutorial. AdventureWorks exercises no.36. SQL SERVER.  SQL tutorial. AdventureWorks exercises no.34. SQL SERVER. SQL tutorial. AdventureWorks exercises SQL SERVER.  SQL tutorial. AdventureWorks exercises no.36. SQL SERVER.  SQL tutorial. AdventureWorks exercises no.34. SQL SERVER. SQL tutorial. AdventureWorks exercises SQL SERVER. SQL tutorial. AdventureWorks exercises no.36. SQL SERVER.  SQL tutorial. AdventureWorks exercises no.34. SQL SERVER. SQL tutorial. AdventureWorks exercises SQL SERVER.


Rozwiązanie:

Pomocniczy schemat

Adventureworks 37. Oblicz i wyświetl wartość pierwszego i ostatniego zamówienia.

Zapytanie:

    SELECT
         'Pierwsze zamówienie' AS Info
        ,SUM(OD.OrderQty*OD.UnitPrice)AS Wartosc
    FROM    
        (
        SELECT TOP 1 O.SalesOrderID
        FROM Sales.SalesOrderHeader O
        ORDER BY O.OrderDate, SalesOrderID
        ) AS SQ
        JOIN Sales.SalesOrderHeader OH ON SQ.SalesOrderID = OH.SalesOrderID
        JOIN Sales.SalesOrderDetail OD ON SQ.SalesOrderID = OD.SalesOrderID
    GROUP BY
        OH.SalesOrderID

    UNION ALL

       SELECT
         'Ostatnie zamówienie' AS Info
        ,SUM(OD.OrderQty*OD.UnitPrice)AS Wartosc
    FROM    
        (
        SELECT TOP 1 O.SalesOrderID
        FROM Sales.SalesOrderHeader O
        ORDER BY O.OrderDate DESC, SalesOrderID DESC
        ) AS SQ
        JOIN Sales.SalesOrderHeader OH ON SQ.SalesOrderID = OH.SalesOrderID
        JOIN Sales.SalesOrderDetail OD ON SQ.SalesOrderID = OD.SalesOrderID
    GROUP BY
        OH.SalesOrderID

Wynik:

SQL tutorial. AdventureWorks exercises. SQL SERVER.

Pobierz skrypt sql


SQL tutorial. AdventureWorks exercises no.36. SQL SERVER.  SQL tutorial. AdventureWorks exercises no.34. SQL SERVER. SQL tutorial. AdventureWorks exercises SQL SERVER.  SQL tutorial. AdventureWorks exercises no.34. SQL SERVER.  SQL tutorial. AdventureWorks exercises no.34. SQL SERVER. SQL tutorial. AdventureWorks exercises SQL SERVER. SQL tutorial. AdventureWorks exercises no.36. SQL SERVER.  SQL tutorial. AdventureWorks exercises no.34. SQL SERVER. SQL tutorial. AdventureWorks exercises SQL SERVER.


 

Adventureworks 36. Jak prezentowała się liczba zamówień w poszczególnych latach dla sklepu „Twin Cycles”

SQL tutorial. AdventureWorks exercises. SQL SERVER.

Baza: AdventureWorks

Zadanie nr: 36

Treść:  Jak prezentowała się liczba zamówień w poszczególnych latach dla sklepu "Twin Cycles". Liczbe zamówień pogrupuj wg lat rosnąco.

Polecenia/funkcje w zapytaniu: SELECT, FROM, WHERE, GROUP BY, YEAR(), COUNT()


SQL tutorial. AdventureWorks exercises no.36. SQL SERVER.  SQL tutorial. AdventureWorks exercises no.34. SQL SERVER. SQL tutorial. AdventureWorks exercises SQL SERVER.  SQL tutorial. AdventureWorks exercises no.36. SQL SERVER.  SQL tutorial. AdventureWorks exercises no.34. SQL SERVER. SQL tutorial. AdventureWorks exercises SQL SERVER. SQL tutorial. AdventureWorks exercises no.36. SQL SERVER.  SQL tutorial. AdventureWorks exercises no.34. SQL SERVER. SQL tutorial. AdventureWorks exercises SQL SERVER.


Rozwiązanie:

Pomocniczy schemat

Adventureworks 36. Jak prezentowała się liczba zamówień w poszczególnych latach dla sklepu "Twin Cycles"

Zapytanie:

SELECT
     S.Name AS NazwaSklepu
    ,YEAR(O.OrderDate) AS Rok
    ,COUNT(*) AS IloscZamowien
FROM
    Sales.SalesOrderHeader O
    JOIN Sales.Customer C ON O.CustomerID = C.CustomerID
    JOIN Sales.Store S ON C.StoreID = S.BusinessEntityID
WHERE
    S.Name = 'Twin Cycles'        
GROUP BY
    S.Name, YEAR(O.OrderDate)

Wynik:

SQL tutorial. AdventureWorks exercises. SQL SERVER.

Pobierz skrypt sql


SQL tutorial. AdventureWorks exercises no.36. SQL SERVER.  SQL tutorial. AdventureWorks exercises no.34. SQL SERVER. SQL tutorial. AdventureWorks exercises SQL SERVER.  SQL tutorial. AdventureWorks exercises no.34. SQL SERVER.  SQL tutorial. AdventureWorks exercises no.34. SQL SERVER. SQL tutorial. AdventureWorks exercises SQL SERVER. SQL tutorial. AdventureWorks exercises no.36. SQL SERVER.  SQL tutorial. AdventureWorks exercises no.34. SQL SERVER. SQL tutorial. AdventureWorks exercises SQL SERVER.


 

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

SQL tutorial. AdventureWorks exercises. SQL SERVER.

Baza: AdventureWorks

Zadanie nr: 35

Treść:  Wyświetl klienta/ów który złożył największą liczbę zamówień.
    – jeżeli więcej klientów złożyło taką samą liczbę zamówień wyświetl wszystkich
    – Wyniki posortuj id_klienta (rosnąco)
    – policz tylko te zamówienia które są związane z jakimś sklepem        
    
    Wyniki wyświetl w formacie: identyfikator klienta, nazwa sklepu, liczba zamówień.

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


SQL tutorial. AdventureWorks exercises no.34. SQL SERVER.  SQL tutorial. AdventureWorks exercises no.34. SQL SERVER. SQL tutorial. AdventureWorks exercises SQL SERVER.  SQL tutorial. AdventureWorks exercises no.34. SQL SERVER.  SQL tutorial. AdventureWorks exercises no.34. SQL SERVER. SQL tutorial. AdventureWorks exercises SQL SERVER. SQL tutorial. AdventureWorks exercises no.34. SQL SERVER.  SQL tutorial. AdventureWorks exercises no.34. SQL SERVER. SQL tutorial. AdventureWorks exercises SQL SERVER.


Rozwiązanie:

Pomocniczy schemat

SQL tutorial. AdventureWorks exercises. SQL SERVER.

Zapytanie:

DECLARE @ile int =
        (
            SELECT TOP 1
                COUNT(*)AS LiczbaZamowien
            FROM    
                Sales.SalesOrderHeader O
                JOIN Sales.Customer C ON O.CustomerID = C.CustomerID
                JOIN Sales.Store S ON C.StoreID = S.BusinessEntityID
            GROUP BY
                O.CustomerID, S.Name
            ORDER BY
                COUNT(*) DESC, O.CustomerID
        );

    SELECT
          O.CustomerID AS ID_Klienta
         ,S.Name AS NazwaSklepu
         ,COUNT(*)AS LiczbaZamowien
    FROM    
        Sales.SalesOrderHeader O
        JOIN Sales.Customer C ON O.CustomerID = C.CustomerID
        JOIN Sales.Store S ON C.StoreID = S.BusinessEntityID
    GROUP BY
        O.CustomerID, S.Name
    HAVING
        COUNT(*)= @ile        
    ORDER BY
        COUNT(*) DESC, O.CustomerID

Wynik:

SQL tutorial. AdventureWorks exercises. SQL SERVER.

Pobierz skrypt sql


SQL tutorial. AdventureWorks exercises no.34. SQL SERVER.  SQL tutorial. AdventureWorks exercises no.34. SQL SERVER. SQL tutorial. AdventureWorks exercises SQL SERVER.  SQL tutorial. AdventureWorks exercises no.34. SQL SERVER.  SQL tutorial. AdventureWorks exercises no.34. SQL SERVER. SQL tutorial. AdventureWorks exercises SQL SERVER. SQL tutorial. AdventureWorks exercises no.34. SQL SERVER.  SQL tutorial. AdventureWorks exercises no.34. SQL SERVER. SQL tutorial. AdventureWorks exercises SQL SERVER.


 

Adventureworks 34. Oblicz sumę wartości pierwszego i ostatniego zamówienia.

SQL tutorial. AdventureWorks exercises. SQL SERVER.

Baza: AdventureWorks

Zadanie nr: 34

Treść:  Oblicz sumę wartości pierwszego i ostatniego zamówienia.

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


SQL tutorial. AdventureWorks exercises no.34. SQL SERVER.  SQL tutorial. AdventureWorks exercises no.34. SQL SERVER. SQL tutorial. AdventureWorks exercises no.34. SQL SERVER.


Rozwiązanie:

Zapytanie:

SELECT
     'Suma pierwszego i ostatniego zamówienia' AS Info
    ,SUM(SQUERY.Wartosc) AS Wartość
FROM
    (    
    SELECT
         SUM(OD.OrderQty*OD.UnitPrice)AS Wartosc
    FROM    
        (
        SELECT TOP 1 O.SalesOrderID
        FROM Sales.SalesOrderHeader O
        ORDER BY O.OrderDate, SalesOrderID
        ) AS SQ
        JOIN Sales.SalesOrderHeader OH ON SQ.SalesOrderID = OH.SalesOrderID
        JOIN Sales.SalesOrderDetail OD ON SQ.SalesOrderID = OD.SalesOrderID
    GROUP BY
        OH.SalesOrderID

    UNION ALL

       SELECT
         SUM(OD.OrderQty*OD.UnitPrice)AS Wartosc
    FROM    
        (
        SELECT TOP 1 O.SalesOrderID
        FROM Sales.SalesOrderHeader O
        ORDER BY O.OrderDate DESC, SalesOrderID DESC
        ) AS SQ
        JOIN Sales.SalesOrderHeader OH ON SQ.SalesOrderID = OH.SalesOrderID
        JOIN Sales.SalesOrderDetail OD ON SQ.SalesOrderID = OD.SalesOrderID
    GROUP BY
        OH.SalesOrderID
    )AS SQUERY

       

Wynik:

SQL tutorial. AdventureWorks exercises. SQL SERVER.

Pobierz skrypt sql


SQL tutorial. AdventureWorks exercises no.34. SQL SERVER.  SQL tutorial. AdventureWorks exercises no.34. SQL SERVER. SQL tutorial. AdventureWorks exercises no.34. SQL SERVER.


 

Adventureworks 33. Zaprezentuj zestawienie sprzedaży w latach (wg liczby zamówień)

SQL tutorial. AdventureWorks exercises. SQL SERVER.

Baza: AdventureWorks

Zadanie nr: 33

Treść:  Zaprezentuj zestawienie sprzedaży w latach (wg liczby zamówień)

Polecenia/funkcje w zapytaniu: SELECT, FROM, GROUP BY, ORDER BY, YEAR(), COUNT()


   


Rozwiązanie:

Zapytanie:

SELECT
     YEAR(O.OrderDate) AS Rok
    ,COUNT(*) AS LiczbaZamowien
FROM
    Sales.SalesOrderHeader O
GROUP BY
    YEAR(O.OrderDate)
ORDER BY
 
   2 DESC   

Wynik:

SQL tutorial. AdventureWorks exercises. SQL SERVER.

Pobierz skrypt sql


   


 

Adventureworks 32. Znajdź pierwsze i ostatnie zamówienie.

SQL tutorial. AdventureWorks exercises. SQL SERVER.

Baza: AdventureWorks

Zadanie nr: 32

Treść: Znajdź pierwsze i ostatnie zamówienie.

Polecenia/funkcje w zapytaniu: SELECT, FROM, SELECT TOP, UNION ALL, ORDER BY, DESC


SQL tutorial. AdventureWorks exercises no.32. SQL SERVER.  SQL tutorial. AdventureWorks exercises no.32. SQL SERVER. SQL tutorial. AdventureWorks exercises no.32. SQL SERVER.


Rozwiązanie:

Zapytanie:

SELECT
     OH.SalesOrderID
    ,OH.OrderDate AS DataZamowienia
    ,OH.CustomerID AS ID_Klienta
    ,OH.SalesPersonID AS ID_Sprzedawcy
FROM    
    (
    SELECT TOP 1
        O.SalesOrderID
    FROM
        Sales.SalesOrderHeader O
    ORDER BY
        O.OrderDate, SalesOrderID
    ) AS SQ
    JOIN Sales.SalesOrderHeader OH ON SQ.SalesOrderID = OH.SalesOrderID

UNION ALL

SELECT
     OH.SalesOrderID
    ,OH.OrderDate AS DataZamowienia
    ,OH.CustomerID AS ID_Klienta
    ,OH.SalesPersonID AS ID_Sprzedawcy
FROM    
    (
    SELECT TOP 1
        O.SalesOrderID
    FROM
        Sales.SalesOrderHeader O
    ORDER BY
        O.OrderDate DESC, SalesOrderID DESC
    ) AS SQ
    JOIN Sales.SalesOrderHeader OH ON SQ.SalesOrderID = OH.SalesOrderID   

Wynik:

SQL tutorial. AdventureWorks exercises. SQL SERVER.

Pobierz skrypt sql


SQL tutorial. AdventureWorks exercises no.32. SQL SERVER.  SQL tutorial. AdventureWorks exercises no.32. SQL SERVER. SQL tutorial. AdventureWorks exercises no.32. SQL SERVER.


 

Adventureworks 31. Która kategoria ma najwięcej produktów.

SQL tutorial. AdventureWorks exercises. SQL SERVER.

Baza: AdventureWorks

Zadanie nr: 31

Treść: Która kategoria ma najwięcej produktów.

Polecenia/funkcje w zapytaniu: SELECT, FROM, WHERE, Alias, COUNT(), FULL OUTER JOIN, GROUP BY, ORDER BY


SQL tutorial. AdventureWorks exercises no.31. SQL SERVER.  SQL tutorial. AdventureWorks exercises no.31. SQL SERVER. SQL tutorial. AdventureWorks exercises no.31. SQL SERVER.


Rozwiązanie:

Zapytanie:

SELECT
     C.Name AS [Nazwa kategorii]
    ,COUNT(*) AS [Liczba produktow w kategorii]
FROM
    Production.Product P
    FULL OUTER JOIN Production.ProductSubcategory S
        ON P.ProductSubcategoryID = S.ProductSubcategoryID
    FULL OUTER JOIN Production.ProductCategory C
        ON S.ProductCategoryID = C.ProductCategoryID
GROUP BY
    C.Name    
ORDER BY
    2 DESC   

Wynik:

SQL tutorial. AdventureWorks exercises. SQL SERVER.

Pobierz skrypt sql


SQL tutorial. AdventureWorks exercises no.31. SQL SERVER.  SQL tutorial. AdventureWorks exercises no.31. SQL SERVER. SQL tutorial. AdventureWorks exercises no.31. SQL SERVER.