46 lines
1.1 KiB
MySQL
46 lines
1.1 KiB
MySQL
|
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
|