Добавил:
Yanus
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Хранимые процедуры
.txt //Расчет зарплаты
По всем teacher_code сделай расчет зарплаты (часы * оплату в час (в зависимости от вида занятий))
CREATE PROCEDURE [dbo].[salary1]
@Last_name nvarchar(50)
AS
DECLARE @mytable TABLE(salary1 INT,salary2 INT)
INSERT @mytable
SELECT SUM(teaching_load.hours*form_of_class.pay_per_hour) AS salary, form_of_class.form_code
FROM teachers, teaching_load,form_of_class
WHERE teachers.last_name=@Last_name AND teachers.teacher_code=teaching_load.teacher_code AND form_of_class.form_code=teaching_load.form_code
GROUP BY teachers.last_name,teaching_load.hours, form_of_class.form_code, form_of_class.pay_per_hour
SELECT SUM(salary1), SUM(salary1) FROM @mytable
EXECUTE salary 'Шарапова'
//Курсор
DECLARE @message VARCHAR(80),
@nam VARCHAR(50),
@p INT,
@s INT,
@count INT
SET @s=0
SET @count=0
DECLARE tovar_cursor CURSOR FOR
SELECT teachers.last_name,teaching_load.hours*form_of_class.pay_per_hour AS
Стоимость
FROM teachers, form_of_class INNER JOIN teaching_load ON form_of_class.form_code=teaching_load.form_code
WHERE teaching_load.teacher_code=teachers.teacher_code AND teaching_load.form_code=2
OPEN tovar_cursor
FETCH NEXT FROM tovar_cursor
INTO @nam, @p
IF @@FETCH_STATUS<>0
PRINT ' Нет покупок'
WHILE @@FETCH_STATUS=0
BEGIN
SELECT @message=' '+@nam+' '+
CAST(@p AS CHAR(6))
PRINT @message
SET @s=@s+@p
SET @count=@count+1
FETCH NEXT FROM tovar_cursor
INTO @nam, @p
END
CLOSE tovar_cursor
DEALLOCATE tovar_cursor
SELECT @message='Средняя стоимость '+
CAST((@s/@count) AS CHAR(6))
PRINT @message
По всем teacher_code сделай расчет зарплаты (часы * оплату в час (в зависимости от вида занятий))
CREATE PROCEDURE [dbo].[salary1]
@Last_name nvarchar(50)
AS
DECLARE @mytable TABLE(salary1 INT,salary2 INT)
INSERT @mytable
SELECT SUM(teaching_load.hours*form_of_class.pay_per_hour) AS salary, form_of_class.form_code
FROM teachers, teaching_load,form_of_class
WHERE teachers.last_name=@Last_name AND teachers.teacher_code=teaching_load.teacher_code AND form_of_class.form_code=teaching_load.form_code
GROUP BY teachers.last_name,teaching_load.hours, form_of_class.form_code, form_of_class.pay_per_hour
SELECT SUM(salary1), SUM(salary1) FROM @mytable
EXECUTE salary 'Шарапова'
//Курсор
DECLARE @message VARCHAR(80),
@nam VARCHAR(50),
@p INT,
@s INT,
@count INT
SET @s=0
SET @count=0
DECLARE tovar_cursor CURSOR FOR
SELECT teachers.last_name,teaching_load.hours*form_of_class.pay_per_hour AS
Стоимость
FROM teachers, form_of_class INNER JOIN teaching_load ON form_of_class.form_code=teaching_load.form_code
WHERE teaching_load.teacher_code=teachers.teacher_code AND teaching_load.form_code=2
OPEN tovar_cursor
FETCH NEXT FROM tovar_cursor
INTO @nam, @p
IF @@FETCH_STATUS<>0
PRINT ' Нет покупок'
WHILE @@FETCH_STATUS=0
BEGIN
SELECT @message=' '+@nam+' '+
CAST(@p AS CHAR(6))
PRINT @message
SET @s=@s+@p
SET @count=@count+1
FETCH NEXT FROM tovar_cursor
INTO @nam, @p
END
CLOSE tovar_cursor
DEALLOCATE tovar_cursor
SELECT @message='Средняя стоимость '+
CAST((@s/@count) AS CHAR(6))
PRINT @message
Соседние файлы в предмете Системы управления базами данных