# SQL w raportach ## Zastępstwa danej osoby ```sql= SELECT p.imie AS "Imię nieobecnego", p.nazwisko AS "Nazwisko nieobecnego", zastepstwo.poczatek, zastepstwo.koniec, p2.imie AS "Imię zastępcy", p2.nazwisko AS "Nazwisko zastępcy" FROM `zastepstwo` INNER JOIN nieobecnosci ON nieobecnosci_id = nieobecnosci.id INNER JOIN pracownik AS p ON nieobecnosci.pracownik_id = p.id INNER JOIN slownik_zastepstw ON slowzast_id = slownik_zastepstw.id INNER JOIN pracownik AS p2 ON slownik_zastepstw.pracownik_kto = p2.id WHERE p.imie = '{$name}' AND p.nazwisko = '{$surname}' AND zastepstwo.poczatek >= '{$date_range_start}' AND zastepstwo.koniec <= '{$date_range_end}' ORDER BY zastepstwo.poczatek ``` ## Zastępstwa przez daną osobę ```sql= SELECT p.imie AS "Imię nieobecnego", p.nazwisko AS "Nazwisko nieobecnego", zastepstwo.poczatek, zastepstwo.koniec, p2.imie AS "Imię zastępcy", p2.nazwisko AS "Nazwisko zastępcy" FROM `zastepstwo` INNER JOIN nieobecnosci ON nieobecnosci_id = nieobecnosci.id INNER JOIN pracownik AS p ON nieobecnosci.pracownik_id = p.id INNER JOIN slownik_zastepstw ON slowzast_id = slownik_zastepstw.id INNER JOIN pracownik AS p2 ON slownik_zastepstw.pracownik_kto = p2.id WHERE p2.imie = '{$name}' AND p2.nazwisko = '{$surname}' AND zastepstwo.poczatek >= '{$date_range_start}' AND zastepstwo.koniec <= '{$date_range_end}' ORDER BY zastepstwo.poczatek ``` ## Nieobecności osoby ```sql= SELECT nb.poczatek, nb.koniec, p.imie, p.nazwisko, p.pesel FROM `nieobecnosci` AS nb INNER JOIN pracownik AS p ON p.id = nb.pracownik_id WHERE p.imie = '{$name}' AND p.nazwisko = '{$surname}' AND nb.poczatek >= '{$date_range_start}' AND nb.koniec <= '{$date_range_end}' ORDER BY nb.poczatek ``` ## Nieobecności z okresu ```sql= SELECT nb.poczatek, nb.koniec, p.imie, p.nazwisko, p.pesel FROM `nieobecnosci` AS nb INNER JOIN pracownik AS p ON p.id = nb.pracownik_id WHERE nb.poczatek >= '{$date_range_start}' AND nb.koniec <= '{$date_range_end}' AND p.pracownik_id = (SELECT kierownik_id FROM dzial AS d WHERE d.nazwa = '{$dzial}') ORDER BY nb.poczatek ```