我无法使用这种类型的选择查询(伪代码)。对于给定的“UID_VEHICLE”,UDF在单行中返回一个包含8列的表。当'UID_VEHICLE'作为常数提供时,它可以很好地工作,如3308.但是对于给定的客户,我需要为每辆车提供一行这些功能结果 - 最多返回100行。
SELECT
*
FROM
[dbo].[fnGetNextDOT_InspectionData](UID_VEHICLE)
WHERE
UID_VEHICLE IN (SELECT UID_VEHICLE
FROM tVEHICLES
WHERE UID_CUSTOMER = 88);
欢迎您提出意见和解决方案......谢谢...... John
答案 0 :(得分:1)
将查询中的行值传递给TVF时,需要使用CROSS APPLY
或OUTER APPLY
(从SQL Server 2005开始):
SELECT * -- or dot.*, or whatever is desired
FROM tVEHICLES veh
CROSS APPLY [dbo].[fnGetNextDOT_InspectionData](veh.UID_VEHICLE) dot
WHERE veh.UID_CUSTOMER = 88;