Przejdź do treści

Rozwiązanie

Zadanie 1

SELECT * 
    FROM Zamowienia 
    WHERE YEAR(data_zam) = 2015 AND MONTH(data_zam) = 5;

Zadanie 2

SELECT imie 
    FROM Klienci 
    WHERE imie LIKE '%a';

Zadanie 3

SELECT Klienci.id_kl, imie, nazwisko 
    FROM Klienci 
        JOIN Zamowienia USING(id_kl) 
    WHERE DAY(data_zam) = 18 AND MONTH(data_zam) = 3 AND YEAR(data_zam) = 2016 
    GROUP BY Klienci.id_kl;

Zadanie 4

SELECT Klienci.id_kl, imie, nazwisko, SUM(liczba_sztuk * cena) 
    FROM Klienci 
        JOIN Zamowienia USING(id_kl) 
        JOIN Artykuly USING(id_art) 
    GROUP BY Klienci.id_kl 
    ORDER BY nazwisko;

Zadanie 5

SELECT Klienci.id_kl, imie, nazwisko 
    FROM Klienci 
        JOIN Zamowienia USING(id_kl) 
    WHERE YEAR(data_zam) < 2010 
    GROUP BY Klienci.id_kl;

Zadanie 6

SELECT Artykuly.id_art, nazwa, COUNT(id_zam) 
    FROM Zamowienia 
        RIGHT JOIN Artykuly USING(id_art) 
    GROUP BY Artykuly.id_art;

Zadanie 7

SELECT miasto, Artykuly.id_art, SUM(liczba_sztuk) 
    FROM Zamowienia 
        JOIN Klienci USING(id_kl) 
        JOIN Artykuly USING(id_art) 
    GROUP BY miasto, id_art
    HAVING SUM(liczba_sztuk) > 100;

Zadanie 8

SELECT Artykuly.id_art, nazwa, SUM(liczba_sztuk) 
    FROM Zamowienia 
        RIGHT JOIN Artykuly USING(id_art) 
    GROUP BY id_art;

Zadanie 9

SELECT id_art, nazwa 
    FROM Artykuly 
    WHERE id_art NOT IN (SELECT id_art FROM Zamowienia);

Zadanie 10

SELECT Klienci.id_kl, imie, nazwisko 
    FROM Klienci 
        JOIN Zamowienia USING(id_kl) 
        JOIN Artykuly USING(id_art) 
    WHERE id_art IN (10, 20) 
    GROUP BY Klienci.id_kl 
    HAVING COUNT(id_zam) = 2;