This commit is contained in:
Aelita4 2022-11-22 11:23:06 +01:00
commit c24d273b7b
Signed by: Aelita4
GPG Key ID: C217320B9C5FD53B
2 changed files with 72 additions and 0 deletions

26
kolos.sql Normal file
View File

@ -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

46
lab5.sql Normal file
View File

@ -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