テーブルを返すテーブル値戻り関数を作成しました。以下は私の関数の呼び出しです
SELECT * FROM dbo.[StateFixedTaxesCalculation](3020,16,1,1006)
そして、それは私にとっては問題なく動作し、今私はselect statmentでこの関数呼び出しを使用したいので、基本的にemployeeId
である16
を動的に渡すことができます。
だから私はその関数によって返されたテーブルで内部結合を使用することにしました。このような
SELECT * FROM Employee as E
INNER JOIN dbo.[StateFixedTaxesCalculation](3020,16,1,1006) as TC ON TC.EmployeeId=E.EmployeeId
しかし、今ではどのようにして16
をすべてのemployeeId
の動的な値として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