Ćwiczenie 1 Podaj liczbę wizyt w nieruchomościach w kolejnych dniach poprzedniego miesiąca kalendarzowego: SELECT data_wizyty, COUNT(*) AS liczba FROM wizyta WHERE MONTH(SUBDATE(CURDATE(), INTERVAL 1 MONTH)) = MONTH(data_wizyty) AND YEAR(SUBDATE(CURDATE(), INTERVAL 1 MONTH)) = YEAR(data_wizyty) GROUP BY DAY(data_wizyty); +-------------+--------+ | data_wizyty | liczba | | 2016-04-04 | 2 | | 2016-04-24 | 1 | | 2016-04-28 | 1 |
Ćwiczenie 2 Podaj informacje o wynajęciach nieruchomości, których termin końcowy upłynie w następnym miesiącu: SELECT nieruchomoscnr AS nr, klientnr, kaucja, od_kiedy, do_kiedy FROM wynajecie WHERE MONTH(do_kiedy)= MONTH(ADDDATE(CURDATE(), INTERVAL 1 MONTH)) AND YEAR(do_kiedy)= YEAR(ADDDATE(CURDATE(), INTERVAL 1 MONTH)) ORDER BY nr; +-----+----------+--------+------------+------------+ | nr | klientnr | kaucja | od_kiedy | do_kiedy | | B16 | CO18 | 800 | 2015-05-05 | 2016-06-30 | | B18 | CR52 | 100 | 2016-03-01 | 2016-06-01 | | L27 | CR51 | 1200 | 2015-11-01 | 2016-06-30 | | L94 | CR53 | 800 | 2015-09-01 | 2016-06-01 |
Ćwiczenie 3 Podaj liczbę umów najmu zawartych w biurach w Łomży na okres krótszy niż jeden rok: SELECT COUNT(*) AS liczba FROM wynajecie WHERE nieruchomoscnr IN (SELECT nieruchomoscnr FROM nieruchomosc WHERE biuronr IN (SELECT biuronr FROM biuro WHERE miasto='Łomża')) AND ADDDATE(od_kiedy, INTERVAL 1 YEAR) > do_kiedy; +--------+ | liczba | | 3 |
Ćwiczenie 4 Podaj liczbę umów najmu zawartych w biurach w Białymstoku na okres krótszy niż jeden rok: SELECT COUNT(*) AS liczba FROM wynajecie WHERE nieruchomoscnr IN (SELECT nieruchomoscnr FROM nieruchomosc WHERE biuronr IN (SELECT biuronr FROM biuro WHERE miasto='Białystok')) AND ADDDATE(od_kiedy, INTERVAL 1 YEAR) > do_kiedy; +--------+ | liczba | | 6 |
Ćwiczenie 5 Podaj którzy klienci nie wizytowali nieruchomości w ciągu ostatniego kwartału kalendarzowego: SELECT klientnr, imie, nazwisko FROM klient WHERE klientnr NOT IN (SELECT klientnr FROM wizyta WHERE QUARTER(SUBDATE(CURDATE(), INTERVAL 1 QUARTER)) = QUARTER (data_wizyty) AND YEAR(SUBDATE(CURDATE(), INTERVAL 1 QUARTER)) = YEAR(data_wizyty)); +----------+-----------+-------------+ | klientnr | imie | nazwisko | | CO17 | Katarzyna | Winiarska | | CR51 | Michał | Rafalski | | CR53 | Janusz | Kalinowski | | CR54 | Maria | Tomaszewska | | CR55 | Adaś | Kowalski | | CR66 | RafaĹ | Nowicki | | CR77 | Jan | Tomaszewski | | CR88 | Adaś | Maliniak |
Ćwiczenie 6 Podaj którzy klienci wizytowali nieruchomości w ciągu ostatniego kwartału kalendarzowego: SELECT klientnr, imie, nazwisko FROM klient WHERE klientnr IN (SELECT klientnr FROM wizyta WHERE QUARTER(SUBDATE(CURDATE(), INTERVAL 1 QUARTER)) = QUARTER (data_wizyty) AND YEAR(SUBDATE(CURDATE(), INTERVAL 1 QUARTER)) = YEAR(data_wizyty)); +----------+--------+----------+ | klientnr | imie | nazwisko | | CO18 | Anna | Nowak | | CR52 | Ludwik | Wierzba |
Ćwiczenie 7 Podaj ile było wynajęć nieruchomości dla każdego typu w ciągu ostatniego roku kalendarzowego w kolejności malejącej: SELECT typ, COUNT(*) AS liczba FROM wynajecie INNER JOIN nieruchomosc USING(nieruchomoscnr) WHERE YEAR(od_kiedy)= YEAR(CURDATE())-1 GROUP BY typ; +------------+--------+ | typ | liczba | | dom | 1 | | mieszkanie | 3 |