USE w65567_FIRMA; SELECT * FROM PRACOWNICY; SELECT * FROM DEPARTAMENTY; -- 1. Dla każdego pracownika podaj na jakim stanowisku pracuje SELECT NAZWISKO, STANOWISKO FROM PRACOWNICY; -- 2. Znajdź różnice między najwyższymi a najniższymi zarobkami, nazwij kolumnę wyświetlająca wynik różnica SELECT max(PENSJA) - min(PENSJA) AS ROZNICA FROM PRACOWNICY; -- 3. Ilu jest pracowników SELECT count(IDENTYFIKATOR) FROM PRACOWNICY; -- 4. Kto zarabia powyżej 3 tys? SELECT NAZWISKO, PENSJA FROM PRACOWNICY WHERE PENSJA > 3000; -- 5. Kiedy zatrudniono pierwszego pracownika SELECT TOP 1 NAZWISKO, DATA_ZATRUD FROM PRACOWNICY ORDER BY DATA_ZATRUD ASC; -- 6. Wypisz nazwiska pracowników zatrudnionych w maju SELECT NAZWISKO, DATA_ZATRUD FROM PRACOWNICY WHERE month(DATA_ZATRUD) = 5; SELECT NAZWISKO, DATA_ZATRUD FROM PRACOWNICY WHERE DATA_ZATRUD LIKE '%-05-%'; -- 7. Wypisz nazwiska pracowników z działu Sprzedaży SELECT NAZWISKO, NAZWA FROM PRACOWNICY INNER JOIN DEPARTAMENTY ON PRACOWNICY.KOD_dzialu=DEPARTAMENTY.KOD_dzialu WHERE DEPARTAMENTY.NAZWA='Sprzedazy'; -- 8. Podaj nazwę działu z Krakowa SELECT NAZWA FROM DEPARTAMENTY WHERE LOKALIZACJA='Krakow'; -- 9. Ile osób pracuje na stanowisku Sprzedawca SELECT count(IDENTYFIKATOR) FROM PRACOWNICY WHERE STANOWISKO='Sprzedawca'; -- 10. Jak długo pracuje najwcześniej zatrudniony pracownik SELECT TOP 1 DATA_ZATRUD, datediff(year, DATA_ZATRUD, getdate()) FROM PRACOWNICY ORDER BY DATA_ZATRUD ASC; SELECT year(getdate()) - year(DATA_ZATRUD) FROM PRACOWNICY ORDER BY DATA_ZATRUD ASC; -- 11. Ilu jest pracowników w każdym dziale SELECT KOD_dzialu, count(IDENTYFIKATOR) AS ILOSC FROM PRACOWNICY GROUP BY KOD_dzialu; -- 12. Ilu jest pracowników w każdym dziale z wyjątkiem działu 20 SELECT KOD_dzialu, count(IDENTYFIKATOR) AS ILOSC FROM PRACOWNICY WHERE KOD_dzialu != 20 GROUP BY KOD_dzialu; -- 13. Podaj nazwę działu w którym jest co najmniej 4 pracowników SELECT NAZWA, count(IDENTYFIKATOR) FROM DEPARTAMENTY INNER JOIN PRACOWNICY ON DEPARTAMENTY.KOD_dzialu=PRACOWNICY.KOD_dzialu GROUP BY NAZWA HAVING count(IDENTYFIKATOR) >= 4; -- 14. Który pracownik ma najdłuższe nazwisko SELECT TOP 1 NAZWISKO FROM PRACOWNICY ORDER BY len(NAZWISKO) DESC; SELECT TOP 1 NAZWISKO FROM PRACOWNICY WHERE len(NAZWISKO)=(SELECT max(len(NAZWISKO)) FROM PRACOWNICY); -- 15. Kto zarabia najwięcej SELECT NAZWISKO FROM PRACOWNICY WHERE PENSJA=(SELECT max(PENSJA) FROM PRACOWNICY); -- 16. Podaj nazwisko pracownika który najdłużej pracuje SELECT NAZWISKO FROM PRACOWNICY WHERE DATA_ZATRUD=(SELECT min(DATA_ZATRUD) FROM PRACOWNICY); -- 17. Podaj nazwisko pracownika który nie ma prowizji (is null) SELECT NAZWISKO FROM PRACOWNICY WHERE PROWIZJA IS NULL; -- 18. Podaj kierownika który zarządza działem z Krakowa SELECT NAZWISKO FROM PRACOWNICY INNER JOIN DEPARTAMENTY ON PRACOWNICY.KOD_dzialu=DEPARTAMENTY.KOD_dzialu WHERE STANOWISKO='Kierownik' AND LOKALIZACJA='Krakow'; -- 19. Podaj nazwę działu w którym pracuje co najmniej 3 pracowników SELECT NAZWA, count(IDENTYFIKATOR) FROM DEPARTAMENTY INNER JOIN PRACOWNICY ON DEPARTAMENTY.KOD_dzialu=PRACOWNICY.KOD_dzialu GROUP BY NAZWA HAVING count(IDENTYFIKATOR) >= 3; -- 20. Podaj nazwiska pracowników którzy zarabiają między 2000 a 3000 (between) SELECT NAZWISKO FROM PRACOWNICY WHERE PENSJA BETWEEN 2000 AND 3000;