63 lines
2.6 KiB
Transact-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); |