Я пытаюсь написать SQL-функцию, но проблема с объявлением переменных, которые мне нужны для использования в предложении WHERE.SQL-запрос help - объявление переменных внутри функции
Вот код:
CREATE FUNCTION fn_getEmployeePolicies(@employeeid smallint)
RETURNS TABLE
AS
DECLARE @empLoc varchar
DECLARE @empBusA varchar
DECLARE @empType varchar
@empLoc = SELECT Location FROM fn_getEmployeeDetails(@employeeid)
@empBusA = SELECT BusinessArea FROM fn_getEmployeeDetails(@employeeid)
@empType = SELECT Type FROM fn_getEmployeeDetails(@employeeid)
RETURN select PolicyId, PolicyGroupBusinessArea.BusinessArea, policysignoff.PolicyGroupLocation.Location, policysignoff.PolicyGroupEmployeeType.EmployeeType
from policysignoff.PolicyGroupPolicy
LEFT JOIN policysignoff.PolicyGroupBusinessArea on policysignoff.PolicyGroupBusinessArea.PolicyGroupId=policysignoff.PolicyGroupPolicy.PolicyGroupId
LEFT JOIN policysignoff.PolicyGroupLocation on policysignoff.PolicyGroupLocation.PolicyGroupId=policysignoff.PolicyGroupPolicy.PolicyGroupId
LEFT JOIN policysignoff.PolicyGroupEmployeeType on policysignoff.PolicyGroupEmployeeType.PolicyGroupId=policysignoff.PolicyGroupPolicy.PolicyGroupId
where BusinessArea = @empBusA
AND EmployeeType = @empType
AND Location = @empLoc
GO
Логика Я пытаюсь построить в это:
«дано EmployeeID, вернуть все„применимое“Policies» «Применимое» политика одна, где бизнес-область, местоположение и тип EmployeeType соответствуют значению пользователя.
Я пытаюсь использовать другую функцию (fn_getEmployeeDetails), чтобы вернуть BusArea, Loc & EmpType для данного пользователя. Тогда с результатами этого (хранится как переменные) я могу запустить мой оператор select, чтобы вернуть политики.
Проблема, с которой я сталкиваюсь, заключается в том, чтобы заставить переменные, объявленные правильно внутри функции.
Любая помощь или советы будут оценены.
Заранее благодарен!
Спасибо Аллан. В скобках отсортированы операторы select. К сожалению, объявление переменных по-прежнему не работает даже с добавленной длиной. Ошибка, которую я получаю: «неправильный синтаксис рядом с объявлением. Ожидание начала или возврата» – user2190629
Я внесла поправки в свой ответ –