J'ai créé une fonction de retour de valeur de table qui me renvoie une table. voici l'appel de ma fonction comme suit
SELECT * FROM dbo.[StateFixedTaxesCalculation](3020,16,1,1006)
et ça marche bien pour moi, maintenant je veux utiliser cet appel de fonction dans un état sélectionné, donc je peux passer 16
qui est essentiellement employeeId
dynamiquement.
J'ai donc décidé d'utiliser la jointure interne avec la table renvoyée par cette fonction. Comme ça
SELECT * FROM Employee as E
INNER JOIN dbo.[StateFixedTaxesCalculation](3020,16,1,1006) as TC ON TC.EmployeeId=E.EmployeeId
mais maintenant comment passer 16
comme valeur dynamique de tous les employeeId
un par un.
utilisation outer/cross apply
:
select *
from Employee as E
cross apply dbo.[StateFixedTaxesCalculation](3020, E.EmployeeId, 1, 1006) as TC
si vous devez toujours filtrer par TC.EmployeeId = E.EmployeeId
, vous pouvez le faire avec la sous-requête:
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