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
|