# 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
```