Reputation: 460238
I thought that must be obvious but I can't figure it out.
Say there is a table tblData
with a column ID
and a table-valued-function (_tvf
) that takes an ID
as parameter. I need the results for all ID's in tblData
.
But:
SELECT * FROM tblData data
INNER JOIN dbo._tvf(data.ID) AS tvfData
ON data.ID = tvfData.ID
gives me an error: The multi-part identifier "data.ID" could not be bound
What is the correct way to pass all ID's to this TVF and concat the results?
Thanks
Upvotes: 1
Views: 565
Reputation: 755148
I think you might need to use CROSS APPLY instead of an inner join here:
SELECT *
FROM dbo.tblData data
CROSS APPLY dbo._tvf(data.ID) AS tvfData
This will call the TVF function for each data.ID
of the base table and join the results to the base table's columns.
See ressources here:
Upvotes: 5