commit c24d273b7b1e5ed455c2b21ec83593f1f9c3e30c Author: Aelita4 Date: Tue Nov 22 11:23:06 2022 +0100 Lab 5 diff --git a/kolos.sql b/kolos.sql new file mode 100644 index 0000000..c087bd7 --- /dev/null +++ b/kolos.sql @@ -0,0 +1,26 @@ +USE BILBLIOTEKA_2022; + +-- wypisz egzemplarz który wystąpił we wszystkich wypożyczeniach + +SELECT wypozyczenie.id_egzemplarz FROM wypozyczenie +INNER JOIN egzemplarz ON wypozyczenie.id_egzemplarz=egzemplarz.id_egzemplarz +INNER JOIN ksiazka ON egzemplarz.id_ksiazka=ksiazka.id_ksiazka +WHERE wypozyczenie.id_egzemplarz = ( + SELECT max(cc.ilosc) FROM ( + SELECT id_egzemplarz, count(*) AS ilosc FROM wypozyczenie bb + GROUP BY id_egzemplarz + ) cc +); + + +-- sprawdzenie + +SELECT * FROM wypozyczenie; + +SELECT id_egzemplarz, count(*) FROM wypozyczenie +GROUP BY id_egzemplarz; + +SELECT max(cc.ilosc) FROM ( + SELECT id_egzemplarz, count(*) AS ilosc FROM wypozyczenie bb + GROUP BY id_egzemplarz +) cc \ No newline at end of file diff --git a/lab5.sql b/lab5.sql new file mode 100644 index 0000000..8953e97 --- /dev/null +++ b/lab5.sql @@ -0,0 +1,46 @@ +USE w65567_FIRMA; + +-- 0. przygotuj komunikat 'Jest X sprzedawców' +DECLARE @b int +SELECT @b=count(*) FROM Pracownicy WHERE STANOWISKO='Sprzedawca' +PRINT 'Jest '+cast(@b AS varchar)+' sprzedawcow' + +-- 1. Zarobki poniżej 3 tys należy zwiększyć o 20%, a zarobki powyżej 3 tys +-- należy obniżyć o 10% +UPDATE Pracownicy +SET PENSJA=( + CASE + WHEN PENSJA < 3000 THEN PENSJA*1.2 + WHEN PENSJA > 3000 THEN PENSJA*0.9 + ELSE PENSJA + END +) + +SELECT * FROM Pracownicy + + +-- 2. Stwórz procedurę która wypisze najwcześniej zatrudnione osoby, w każdym +-- departamencie. Identyfikator departamentu powinien być przekazanym jako +-- argument procedur. Natomiast data zatrudnienia przekazywana jest przez +-- drugi argument, który jest zadeklarowany jako wyjściowy. +CREATE PROC zad2 ( + @d int, + @data date OUTPUT +) AS +SELECT @data=min(data_zatrud) FROM Pracownicy +WHERE KOD_dzialu=@d + + +DECLARE @data DATE +EXEC zad2 10, @data OUTPUT +PRINT @data + +CREATE PROC ilosc +AS +DECLARE @i int +SELECT @i=count(identyfikator) FROM Pracownicy +RETURN @i + +DECLARE @z int +EXEC @z=ilosc +PRINT @z \ No newline at end of file