Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Задание 1
- DECLARE @Зарплата DECIMAL(10, 2)
- DECLARE @ОбщаяСуммаПремии DECIMAL(10, 2)
- DECLARE @Пол NVARCHAR(10)
- DECLARE @ГодРождения INT
- DECLARE cursorEmployee CURSOR FOR
- SELECT Зарплата, Пол, Год_рождения
- FROM Сотрудник
- SET @ОбщаяСуммаПремии = 0
- OPEN cursorEmployee
- FETCH NEXT FROM cursorEmployee INTO @Зарплата, @Пол, @ГодРождения
- WHILE @@FETCH_STATUS = 0
- BEGIN
- IF (@Пол = N'женский' AND DATEDIFF(YEAR, @ГодРождения, GETDATE()) > 60)
- OR (@Пол = N'мужской' AND DATEDIFF(YEAR, @ГодРождения, GETDATE()) > 65)
- BEGIN
- SET @ОбщаяСуммаПремии = @ОбщаяСуммаПремии + (@Зарплата * 0.25)
- END
- FETCH NEXT FROM cursorEmployee INTO @Зарплата, @Пол, @ГодРождения
- END
- CLOSE cursorEmployee
- DEALLOCATE cursorEmployee
- SELECT @ОбщаяСуммаПремии AS Общая_сумма_премии
- -- Задание 2
- CREATE TABLE ИтоговаяТаблица (ФИО NVARCHAR(255), КоличествоНесданных INT);
- DECLARE @ФИО NVARCHAR(255);
- DECLARE @КоличествоНесданных INT = 0;
- DECLARE cursor_Студент CURSOR FOR
- SELECT DISTINCT ФИО
- FROM Экзамен;
- OPEN cursor_Студент;
- FETCH NEXT FROM cursor_Студент INTO @ФИО;
- WHILE @@FETCH_STATUS = 0
- BEGIN
- SET @КоличествоНесданных = 4 - (
- SELECT COUNT(DISTINCT Предмет)
- FROM Экзамен
- WHERE ФИО = @ФИО
- );
- IF @КоличествоНесданных > 0
- BEGIN
- INSERT INTO ИтоговаяТаблица (ФИО, КоличествоНесданных)
- VALUES (@ФИО, @КоличествоНесданных);
- END
- FETCH NEXT FROM cursor_Студент INTO @ФИО;
- END
- CLOSE cursor_Студент;
- DEALLOCATE cursor_Студент;
- SELECT * FROM ИтоговаяТаблица
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement