T-SQL | Выполнить SELECT запрос

Разработаем UDF-объект, который возвращает значение в результате выполнения SELECT-запроса.

 

Например, есть таблица BonusTable по бонусам работников:

 

 

Нужно выполнить Select запрос 'бонус по работнику на заданную дату' к таблице BonusTable, полю Bonus, по параметрам: 'работник' и 'дата' .

Если результат выполненного запроса выдает 0 записей, вернуть значение 0, иначе вернуть результат запроса.

 

Например, для работника 118 на дату 27.12.2005 функция возвратит значение по полю Bonus, равное 0,08.

 


/*

@EmployeeID – ID работника

@BonusDate – дата

@result – переменная, в которую кладем результат

*/

 

CREATE FUNCTION dbo.BonusByEmployeeAndDate (@EmployeeID int, @BonusDate datetime)

RETURNS float

AS

BEGIN

 DECLARE @result AS float

 SET @result = (SELECT Bonus

           FROM BonusTable

 WHERE EmployeeID = @EmployeeID

 AND @BonusDate >= BonusStartDate

 AND @BonusDate <= BonusEndDate

)

IF @result = NULL

 RETURN 0

         RETURN @result

END


 



© 2018 | Анна Петросян | pashelp@yandex.ru