1. Lista wszystkich dostępnych sprzętów

SELECT nazwa, cena
FROM sprzet
WHERE stan='dostepny';

2. Sprzęt z ceną większą niż 100

SELECT nazwa, cena
FROM sprzet
WHERE cena > 100;

3. Klienci z określonego miasta

SELECT k.imie, k.nazwisko, a.miasto
FROM klienci AS k
INNER JOIN adresy AS a ON k.id_klient = a.id_klient
WHERE a.miasto='Warszawa';

4. Wypożyczenia w określonym przedziale dat

SELECT id_wypozyczenia, id_klient, data_wypozyczenia
FROM wypozyczenia
WHERE data_wypozyczenia BETWEEN #2025-01-01# AND #2025-01-31#;

5. Klienci, którzy nie oddali sprzętu

SELECT k.imie, k.nazwisko, w.data_wypozyczenia
FROM klienci AS k
INNER JOIN wypozyczenia AS w ON k.id_klient = w.id_klient
WHERE w.data_zwrotu IS NULL;

6. Łączna kwota wydana przez klienta

SELECT k.imie, k.nazwisko, SUM(sw.ilosc * sw.cena_za_dzien) AS laczna_kwota
FROM klienci AS k
INNER JOIN wypozyczenia AS w ON k.id_klient = w.id_klient
INNER JOIN sprzet_wypozyczenia AS sw ON w.id_wypozyczenia = sw.id_wypozyczenia
GROUP BY k.id_klient, k.imie, k.nazwisko;

7.Kto zapłacił najwięcej za pojedyncze wypożyczenie

SELECT TOP 1 k.imie, k.nazwisko, SUM(sw.ilosc*sw.cena_za_dzien) AS kwota
FROM klienci AS k
INNER JOIN wypozyczenia AS w ON k.id_klient = w.id_klient
INNER JOIN sprzet_wypozyczenia AS sw ON w.id_wypozyczenia = sw.id_wypozyczenia
GROUP BY k.id_klient, k.imie, k.nazwisko
ORDER BY kwota DESC;


8. Liczba wypożyczeń każdego klienta

SELECT k.imie, k.nazwisko, COUNT(w.id_wypozyczenia) AS liczba_wypozyczen
FROM klienci AS k
INNER JOIN wypozyczenia AS w ON k.id_klient = w.id_klient
GROUP BY k.id_klient, k.imie, k.nazwisko;

9.Sprzęt wypożyczany więcej niż 3 razy

SELECT s.nazwa, COUNT(sw.id_sprzet) AS ilosc_wypozyczen
FROM sprzet AS s
INNER JOIN sprzet_wypozyczenia AS sw ON s.id_sprzet = sw.id_sprzet
GROUP BY s.nazwa
HAVING COUNT(sw.id_sprzet) > 3;


10. Klienci, którzy zmienili nazwisko

SELECT DISTINCT k.imie, k.nazwisko
FROM klienci AS k
INNER JOIN historia_nazwiska AS h ON k.id_klient = h.id_klient;

11.Liczba zmian adresu każdego klienta 
SELECT k.imie, k.nazwisko, COUNT(ha.id_hist_adres) AS liczba_zmian
FROM klienci AS k
INNER JOIN adresy AS a ON k.id_klient = a.id_klient
INNER JOIN historia_adresu AS ha ON a.id_adres = ha.id_adres
GROUP BY k.imie, k.nazwisko;

12. Sprzęt nigdy nie wypożyczony

SELECT s.nazwa
FROM sprzet AS s
LEFT JOIN sprzet_wypozyczenia AS sw ON s.id_sprzet = sw.id_sprzet
WHERE sw.id_sprzet IS NULL;


13. Sprzęt wypożyczany więcej niż określona liczba dni
SELECT s.nazwa, DATEDIFF(NOW(), w.data_wypozyczenia) AS dni_wypozyczenia
FROM sprzet AS s
INNER JOIN sprzet_wypozyczenia AS sw ON s.id_sprzet = sw.id_sprzet
INNER JOIN wypozyczenia AS w ON sw.id_wypozyczenia = w.id_wypozyczenia
WHERE w.data_zwrotu IS NULL AND DATEDIFF(NOW(), w.data_wypozyczenia) > 7;


14. Sprzęt i średnia cena wypozyczeń
SELECT s.nazwa, AVG(sw.cena_za_dzien) AS srednia_cena
FROM sprzet AS s
INNER JOIN sprzet_wypozyczenia AS sw ON s.id_sprzet = sw.id_sprzet
GROUP BY s.nazwa;


15. Klienci i liczba dni wypożyczeni
SELECT k.imie, k.nazwisko, SUM(DATEDIFF(IIF(w.data_zwrotu IS NULL, DATE(), w.data_zwrotu), w.data_wypozyczenia)) AS laczna_ilosc_dni
FROM klienci AS k
INNER JOIN wypozyczenia AS w ON k.id_klient = w.id_klient
INNER JOIN sprzet_wypozyczenia AS sw ON w.id_wypozyczenia = sw.id_wypozyczenia
GROUP BY k.imie, k.nazwisko;







