我有一个表值函数,可以在给定的一天返回一个人的老板。
dbo.Bosses(@empId,@ date)
如何使用另一个函数循环此函数?
即,我想使用具有日期和员工ID的表B,我想使用它们作为参数来查找表B中输入的每一天的所有老板
Table B EmpId int hours float day datetime creator int
答案 0 :(得分:4)
假设您有SQL Server 2005 +
SELECT
*
FROM
TableB
CROSS APPLY
dbo.Bosses(TableB.EmpID, TableB.day) AS bosses
CROSS APPLY仅返回Bosses函数返回结果的结果。类似于INNER JOIN。
OUTER APPLY将返回TableB中每个条目的结果,类似于LEFT JOIN。
答案 1 :(得分:3)
您需要使用APPLY
运算符(CROSS
或OUTER
,前者类似于INNER JOIN
,后者类似于LEFT JOIN
):
SELECT b.*, a.*
FROM table_b b
CROSS APPLY dbo.Bosses(b.emp_id, b.emp_date)a