私は与えられた日の人の上司を返すテーブル値関数を持っています。どのようにテーブル値関数をループする
dbo.Bosses(@empId、@date)
は、他からの情報で、この機能によってIループですか?
つまり、私は、日付と従業員IDを持つ表Bを使用したいと私は
Table B EmpId int hours float day datetime creator int
私は与えられた日の人の上司を返すテーブル値関数を持っています。どのようにテーブル値関数をループする
dbo.Bosses(@empId、@date)
は、他からの情報で、この機能によってIループですか?
つまり、私は、日付と従業員IDを持つ表Bを使用したいと私は
Table B EmpId int hours float day datetime creator int
は、SQL Serverの2005+
を持っていると仮定するとSELECT
*
FROM
TableB
CROSS APPLY
dbo.Bosses(TableB.EmpID, TableB.day) AS bosses
CROSS APPLYは、Bosses関数が結果を返す場合にのみ結果を返します。 INNER JOINと同じです。
OUTER APPLYは、LEFT JOINと同様に、TableBのすべてのエントリの結果を返します。
は、あなたが使用する必要が表Bに入力される各日のすべてのボスを見つけるために、引数としてそれらを使用したいです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