SBD 5 2

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 2

1

SELECT nazwisko, pracownicy.id_zesp, nazwa


FROM zespoly RIGHT OUTER JOIN pracownicy
ON zespoly.id_zesp = pracownicy.id_zesp
ORDER BY nazwisko;
2
SELECT nazwa, zespoly.id_zesp,
CASE WHEN nazwisko IS NOT NULL THEN nazwisko ELSE 'brak pracowników' end AS
pracownik
FROM zespoly LEFT OUTER JOIN pracownicy
ON zespoly.id_zesp = pracownicy.id_zesp
ORDER BY nazwa, nazwisko;
3
SELECT
CASE WHEN nazwa IS NOT NULL THEN nazwa ELSE 'brak zespołu' end AS zespol,
CASE WHEN nazwisko IS NOT NULL THEN nazwisko ELSE 'brak pracowników' end AS
pracownik
FROM zespoly FULL OUTER JOIN pracownicy
ON zespoly.id_zesp = pracownicy.id_zesp
ORDER BY nazwa, nazwisko;
4
SELECT nazwa, count(id_prac) AS liczba, sum(placa_pod) AS suma_plac
FROM zespoly LEFT OUTER JOIN pracownicy
ON zespoly.id_zesp = pracownicy.id_zesp
GROUP BY nazwa
ORDER BY nazwa;
5
SELECT nazwa
FROM zespoly LEFT OUTER JOIN pracownicy
ON zespoly.id_zesp = pracownicy.id_zesp
HAVING count(id_prac) = 0
GROUP BY nazwa
ORDER BY nazwa;
6
SELECT p.nazwisko AS pracownik, p.id_prac, s.nazwisko AS szef, p.id_szefa AS
id_szefa
FROM pracownicy p LEFT OUTER JOIN pracownicy s
ON p.id_szefa = s.id_prac
ORDER BY p.nazwisko;
7
SELECT s.nazwisko, count(p.id_prac)
FROM pracownicy p RIGHT OUTER JOIN pracownicy s
ON p.id_szefa = s.id_prac
GROUP BY s.nazwisko
ORDER BY s.nazwisko;
8
SELECT p.nazwisko, p.etat, p.placa_pod, z.nazwa, s.nazwisko AS szef
FROM pracownicy p LEFT OUTER JOIN pracownicy s
ON p.id_szefa = s.id_prac
LEFT OUTER JOIN zespoly z
ON p.id_zesp = z.id_zesp
ORDER BY p.nazwisko;
9
SELECT nazwisko, nazwa
FROM pracownicy, zespoly
ORDER BY nazwisko, nazwa;
10
SELECT count(*)
FROM pracownicy, zespoly, etaty;
11
SELECT etat
FROM pracownicy
WHERE EXTRACT(YEAR FROM zatrudniony) = '1992'
INTERSECT
SELECT etat
FROM pracownicy
WHERE EXTRACT(YEAR FROM zatrudniony) = '1993'
ORDER BY etat;
12
SELECT id_zesp
FROM zespoly
MINUS
SELECT id_zesp
FROM pracownicy
ORDER BY id_zesp;
13
SELECT id_zesp, zespoly.nazwa
FROM zespoly
MINUS
SELECT pracownicy.id_zesp, zespoly.nazwa
FROM pracownicy, zespoly
ORDER BY id_zesp;
14
SELECT nazwisko, placa_pod, 'Poniżej 480 złotych'
FROM pracownicy
WHERE placa_pod < 480
UNION
SELECT nazwisko, placa_pod, 'Dokładnie 480 złotych'
FROM pracownicy
WHERE placa_pod = 480
UNION
SELECT nazwisko, placa_pod, 'Powyżej 480 złotych'
FROM pracownicy
WHERE placa_pod > 480
ORDER BY placa_pod;

You might also like