lab6/lab6.sql

63 lines
2.6 KiB
Transact-SQL

USE w65567_FIRMA;
DECLARE @n varchar(20)
DECLARE @i INT = 0
DECLARE kur1 CURSOR
FOR SELECT NAZWISKO FROM PRACOWNICY
OPEN kur1
FETCH FROM kur1 INTO @n
WHILE @@FETCH_STATUS = 0
BEGIN
SET @i += 1
PRINT @n + ' jest na pozycji ' + cast(@i as varchar(3))
FETCH NEXT FROM kur1 INTO @n
END
CLOSE kur1
DEALLOCATE kur1
-- 1. Używając kursora zaktualizuj dane w tabeli PRACOWNICY, tak aby zarobki
-- zostały powiększone o 5%. Na podwyżkę zostało przeznaczone 1000 zł.
SELECT * FROM PRACOWNICY ORDER BY PENSJA ASC
DECLARE @pula decimal(8, 2)
SET @pula = 1000
DECLARE @podwyzka decimal(8, 2)
DECLARE @pensja decimal(8, 2)
DECLARE kur2 CURSOR
FOR SELECT PENSJA FROM PRACOWNICY ORDER BY PENSJA ASC
OPEN kur2
FETCH NEXT FROM kur2 INTO @pensja
WHILE @@FETCH_STATUS = 0
BEGIN
SET @podwyzka = @pensja * 0.05
UPDATE PRACOWNICY SET PENSJA = @pensja + @podwyzka WHERE CURRENT OF kur2
SET @pula = @pula - @podwyzka
PRINT convert(varchar(10), @podwyzka) + ', w puli zostalo' + convert(varchar(10), @pula)
PRINT 'aaaa'
FETCH NEXT FROM kur2 INTO @pensja
END
CLOSE kur2
DEALLOCATE kur2
DROP TABLE PRACOWNICY
create table PRACOWNICY(identyfikator int identity constraint pracownicy_primary_key primary key,imie varchar(15),nazwisko varchar(35),stanowisko varchar(25),kierownik int,data_zatrud date,pensja decimal(10,2),prowizja decimal(10,2),
)
INSERT INTO PRACOWNICY VALUES (1,'Kowalski','Jan','Prezes',NULL,'2002-01-01',7000.20,NULL,10);
INSERT INTO PRACOWNICY VALUES (2,'Głowacki','Mateusz','Kierownik',1,'2002-05-01',3210,150,40);
INSERT INTO PRACOWNICY VALUES (3,'Sikorski','Adam','Kierownik',1,'2002-05-01',3210,250,20);
INSERT INTO PRACOWNICY VALUES (4,'Nowak','Stanislaw','Kierownik',1,'2002-05-01',3210,350,30);
INSERT INTO PRACOWNICY VALUES (5,'Wisniewski','Marcin','Sprzedawca',4,'2007-06-27',1210,250,30);
INSERT INTO PRACOWNICY VALUES (6,'Kochanowski','Juliusz','Sprzedawca',4,'2005-11-22',1210,260,30);
INSERT INTO PRACOWNICY VALUES (7,'Charysz','Szczepan','Sprzedawca',4,'2006-12-01',1210,200,30);
INSERT INTO PRACOWNICY VALUES (8,'Kordecki','Adam','Laborant',3,'2002-12-11',2210,150,20);
INSERT INTO PRACOWNICY VALUES (9,'Kopacz','Ewa','Laborant',3,'2003-04-21',2110,150,20);
INSERT INTO PRACOWNICY VALUES (10,'Ziolkowska','Krystyna','Laborant',3,'2002-07-10',2510,100,20);
INSERT INTO PRACOWNICY VALUES (11,'Szela','Katarzyna','Konsultant',2,'2002-05-10',2810,100,40);
INSERT INTO PRACOWNICY VALUES (12,'Kędzior','Jakub','Analityk',2,'2002-05-10',2710,120,40);
INSERT INTO PRACOWNICY VALUES (13,'Ziobro','Marlena','Konsultant',2,'2003-02-13',2610,200,40);
INSERT INTO PRACOWNICY VALUES (14,'Pigwa','Genowefa','Ksiegowa',1,'2002-01-02',2000,NULL,10);