Подтвердить что ты не робот

Параметр pass в функции с табличной оценкой с использованием оператора select

Я создал функцию возвращаемой таблицы, которая возвращает мне таблицу. вот вызов моей функции, как следует

SELECT * FROM dbo.[StateFixedTaxesCalculation](3020,16,1,1006)

и его работа ОК для меня, теперь я хочу использовать этот вызов функции в select statment, поэтому я могу передать 16, который в основном employeeId динамически.

Итак, я решил использовать внутреннее соединение с таблицей, возвращаемой этой функцией. Как этот

SELECT * FROM Employee as E
INNER JOIN  dbo.[StateFixedTaxesCalculation](3020,16,1,1006) as TC   ON TC.EmployeeId=E.EmployeeId

но теперь, как я могу передать 16 как динамическое значение всех employeeId один за другим.

4b9b3361

Ответ 1

используйте outer/cross apply:

select *
from Employee as E
    cross apply dbo.[StateFixedTaxesCalculation](3020, E.EmployeeId, 1, 1006) as TC

если вам еще нужно отфильтровать TC.EmployeeId = E.EmployeeId, вы можете сделать это с помощью подзапроса:

select *
from Employee as E
    cross apply (
        select TT.*
        from dbo.[StateFixedTaxesCalculation](3020, E.EmployeeId, 1, 1006) as TT
        where TT.EmployeeId = E.EmployeeId
    ) as TC