Archiwum kategorii: HOTELS

Ćwiczenia z bazą hotele (ang. Hotels)

db HOTELS 11. Wyświetl wszystkie rezerwacje (z informacją czy zrealizowane)

SQL tutorial. db Hotels exercises. SQL SERVER.

Baza: Hotele/Hotels

Zadanie nr: 11

Treść: Wyświetl wszystkie rezerwacje (z informacją czy zrealizowane)

Polecenia/funkcje w zapytaniu: SELECT, CASE, FROM, JOIN, WHERE


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


Rozwiązanie:

Zapytanie:

SELECT
     Klient.client_last_name AS Nazwisko
    ,Klient.client_first_name AS [Imie]
    ,Kraj.country_name AS [Kraj (hotel)]
    ,Miasto.city_name AS [Miasto (hotel)]
    ,reservation_starting_date AS [Data rozpoczecia rezerwacji]
    ,reservation_final_date AS [Data zakończenia rezerwacji]
    ,CASE
        WHEN Rezerwacja.reservation_realized = 1 THEN 'Zrealizowana'
        ELSE 'NIE zrealizowana'
     END AS [Stan realizacji]
FROM
    reservations Rezerwacja
    JOIN clients Klient ON Rezerwacja.reservation_client_id = Klient.client_id
    JOIN rooms Pokoj ON Rezerwacja.reservation_room_id = Pokoj.room_id
    JOIN hotels Hotel ON Pokoj.room_hotel_id = Hotel.hotel_id
    JOIN countries Kraj ON Hotel.hotel_country_id = Kraj.country_id
    JOIN cities Miasto ON Hotel.hotel_city_id = Miasto.city_id
WHERE
    Klient.client_last_name = 'Banko'

Wynik:

SQL tutorial. db Hotels exercises. SQL SERVER.

Pobierz skrypt sql


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


 

db HOTELS 10. Oblicz udział procentowy hoteli w danym kraju względem wszystkich hoteli w bazie

SQL tutorial. db Hotels exercises. SQL SERVER.

Baza: Hotele/Hotels

Zadanie nr: 10

Treść: Oblicz udział procentowy hoteli w danym kraju względem wszystkich hoteli w bazie

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


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


Rozwiązanie:

Zapytanie:

DECLARE @ile_hoteli numeric =
    (
        SELECT
            COUNT(*)
        FROM    
            hotels
    )   
SELECT
     C.country_name AS Kraj
    ,CAST(COUNT(*)*100/@ile_hoteli AS NUMERIC(6,2)) AS [%]
FROM
    hotels H
    JOIN countries C ON H.hotel_country_id = C.country_id    
GROUP BY
    C.country_name
ORDER BY
    2 DESC   

Wynik:

SQL tutorial. db Hotels exercises. SQL SERVER.

Pobierz skrypt sql


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


 

db HOTELS 9. Jakie było obłożenie wszystkich hoteli (%) w dniu 2016-10-10

SQL tutorial. db Hotels exercises. SQL SERVER.

Baza: Hotele/Hotels

Zadanie nr: 9

Treść: Jakie było obłożenie wszystkich hoteli (%) w dniu 2016-10-10

Polecenia/funkcje w zapytaniu: DECLARE, SELECT, COUNT, FROM, WHERE, BETWEEN, CAST(), ROUND()


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


Rozwiązanie:

Zapytanie:

DECLARE @dataSprawdzenia date = '2016-10-10'
DECLARE @ilePokoi int =
    (
        SELECT
            COUNT(*)
        FROM
            rooms
    )
DECLARE @ilePokoiZajetych int =
    (    
        SELECT
            COUNT(*)    
        FROM    
            reservations R    
        WHERE
            @dataSprawdzenia BETWEEN R.reservation_starting_date AND R.reservation_final_date
    )    
DECLARE @oblozenie REAL = 100*@ilePokoiZajetych/@ilePokoi;
SELECT
     'Wszystkich pokoi: '+CAST(@ilePokoi AS NVARCHAR) AS Pokoi
    ,'Zajętych pokoi: '+CAST(@ilePokoiZajetych AS NVARCHAR) AS Zajętych
    ,'Obłożenie pokoi w dn. 2016-10-10 wynosi: '
        +CAST(CAST(ROUND((100*CAST(@ilePokoiZajetych AS NUMERIC)/CAST(@ilePokoi AS NUMERIC)),2) AS NUMERIC(6,2)) AS NVARCHAR)
        +'%' AS Obłożenie

Wynik:

SQL tutorial. db Hotels exercises. SQL SERVER.

Pobierz skrypt sql


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


 

db HOTELS 8. W jakim hotelu złożono najwięcej rezerwacji które zostały zrealizowane.

SQL tutorial. db Hotels exercises. SQL SERVER.

Baza: Hotele/Hotels

Zadanie nr: 8

Treść:  W jakim hotelu złożono najwięcej rezerwacji które zostały zrealizowane.

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


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


Rozwiązanie:

Zapytanie:

SELECT TOP 1
     CO.country_name AS Kraj
    ,CI.city_name AS Miasto
    ,H.hotel_id AS [Nazwa hotelu]
    ,COUNT(*) AS [Ilość złożonych rezerwacji]
FROM
    reservations RE
    JOIN rooms RO ON RE.reservation_room_id = RO.room_id
    JOIN hotels H ON RO.room_hotel_id = H.hotel_id
    JOIN countries CO ON H.hotel_country_id = CO.country_id
    JOIN cities CI ON H.hotel_city_id = CI.city_id
WHERE
    RE.reservation_realized = 1
GROUP BY
    CO.country_name , CI.city_name , H.hotel_id        
ORDER BY
    COUNT(*) DESC

Wynik:

SQL tutorial. db Hotels exercises. SQL SERVER.

Pobierz skrypt sql


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


 

db HOTELS 7. W jakim hotelu złożono najwięcej rezerwacji.

SQL tutorial. db Hotels exercises. SQL SERVER.

Baza: Hotele/Hotels

Zadanie nr: 7

Treść:  W jakim hotelu złożono najwięcej rezerwacji.

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


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


Rozwiązanie:

Zapytanie:

SELECT TOP 1
     CO.country_name AS Kraj
    ,CI.city_name AS Miasto
    ,H.hotel_id AS [Nazwa hotelu]
    ,COUNT(*) AS [Ilość złożonych rezerwacji]
FROM
    reservations RE
    JOIN rooms RO ON RE.reservation_room_id = RO.room_id
    JOIN hotels H ON RO.room_hotel_id = H.hotel_id
    JOIN countries CO ON H.hotel_country_id = CO.country_id
    JOIN cities CI ON H.hotel_city_id = CI.city_id
GROUP BY
    H.hotel_id , CO.country_name , CI.city_name
ORDER BY
    COUNT(*) DESC

Wynik:

SQL tutorial. db Hotels exercises. SQL SERVER.

Pobierz skrypt sql


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


 

db HOTELS 6. Który hotel ma najwięcej miejsc parkingowych

SQL tutorial. db Hotels exercises. SQL SERVER.

Baza: Hotele/Hotels

Zadanie nr: 6

Treść:  Który hotel ma najwięcej miejsc parkingowych

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


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


Rozwiązanie:

Zapytanie:

DECLARE @max_parking_places int = (
SELECT TOP 1
    COUNT(P.parking_hotel_id)
FROM
    parking P    
GROUP BY
    P.parking_hotel_id
ORDER BY
    1 DESC
);
SELECT
     H.hotel_name AS [Nazwa hotelu]
    ,COUNT(P.parking_hotel_id) AS [Ilość miejsc parkingowych]
FROM
    parking P    
    JOIN hotels H ON P.parking_hotel_id = H.hotel_id
GROUP BY
    P.parking_hotel_id, H.hotel_name
HAVING    
    COUNT(P.parking_hotel_id) = @max_parking_places   

Wynik:

SQL tutorial. db Hotels exercises. SQL SERVER.

Pobierz skrypt sql


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


 

db HOTELS 5. Znajdź i wyświetl informacje o najdłuższej rezerwacji

SQL tutorial. db Hotels exercises. SQL SERVER.

Baza: Hotele/Hotels

Zadanie nr: 5

Treść:  Znajdź i wyświetl informacje o najdłuższej rezerwacji

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


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


Rozwiązanie:

Zapytanie:

DECLARE @ilosc_dni int =
    (
        SELECT TOP 1
            DATEDIFF(day,reservation_starting_date,reservation_final_date) AS Dni
        FROM
            reservations R    
        ORDER BY
            1 DESC            
    )    
    
SELECT
     *
FROM
    reservations R        
WHERE
    DATEDIFF(day,reservation_starting_date,reservation_final_date) = @ilosc_dni

Wynik:

SQL tutorial. db Hotels exercises. SQL SERVER.

Pobierz skrypt sql


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


 

db HOTELS 4. Oblicz ile rezerwacji zostało zrealizowanych

SQL tutorial. db Hotels exercises. SQL SERVER.

Baza: Hotele/Hotels

Zadanie nr: 4

Treść:  Oblicz ile rezerwacji zostało zrealizowanych.

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


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


Rozwiązanie:

Zapytanie:

   SELECT
    COUNT(*) AS [Zrealizowane rezerwacje]
FROM
    reservations R
WHERE
    R.reservation_realized = 1

Wynik:

SQL tutorial. db Hotels exercises. SQL SERVER.

Pobierz skrypt sql


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


 

db HOTELS 3. Wyświetl hotele według liczby rezerwacji.

SQL tutorial. db Hotels exercises. SQL SERVER.

Baza: Hotele/Hotels

Zadanie nr: 3

Treść:  Wyświetl hotele według liczby rezerwacji.

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


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


Rozwiązanie:

Zapytanie:

   SELECT
     H.hotel_name
    ,COUNT(*) AS [Liczba rezerwacji]
FROM
    hotels H
    JOIN rooms R ON H.hotel_id = R.room_hotel_id
    JOIN reservations RE ON R.room_id = RE.reservation_room_id        
GROUP BY
    H.hotel_name
ORDER BY
    2 DESC

Wynik:

SQL tutorial. db Hotels exercises. SQL SERVER.

Pobierz skrypt sql


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


 

db HOTELS 2. Lista hoteli które mają między 2 a 5 gwiazdek.

SQL tutorial. db Hotels exercises. SQL SERVER.

Baza: Hotele/Hotels

Zadanie nr: 2

Treść:  Wyświetl listę hoteli które mają między 2 a 5 gwiazdek.

Polecenia/funkcje w zapytaniu: SELECT, FROM, WHERE, Aliasy.


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


Rozwiązanie:

Zapytanie:

   SELECT
     H.hotel_name AS Nazwa
    ,H.hotel_address AS Adres
    ,H.hotel_telephone AS Telefon
FROM
    HOTELS H
WHERE
    H.hotel_stars > 2 AND H.hotel_stars < 5   

Wynik:

SQL tutorial. db Hotels exercises. SQL SERVER.

Pobierz skrypt sql


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