2017-09-21 2 views
0

SQLエラー:複数の部分の識別子 "s.OrderType"は にバインドできませんでした。前の結合のパラメータを使用できますか?

from  Table1 as c 
inner join Table2 as s 
     on c.RequestID = s.ReqID 
cross apply dbo.fn_getValues(s.OrderType) as gcd 
where  c.ReqID = gcd.ReqID 

問題がためjoinを以下の表の式(ビットに参加することです:あなたはcross apply代わりのinner joinを使用し、whereon句を移動する必要があり

from Table1 as c 
inner join Table2 as s on c.RequestID = s.ReqID 
inner join dbo.fn_getValues(s.OrderType) as gcd on c.ReqID = gcd.ReqID 
+4

「内部結合」の代わりに「クロス適用」を使用し、 'on'節を' where'に移動する必要があります – HoneyBadger

+0

@a_horse_with_no_name MS SQL –

+0

@HoneyBadger問題はdbo.fn_getValues(** s .OrderType **)関数のパラメータ、私は間違った方法であなたの提案を得ているかもしれない、あなたはもう少し説明してください。表1から –

答えて

2

)は変更できません。テーブル値関数に参加する場合、これは当てはまりません。テーブル式は別のテーブルの値に依存します。だから我々はcross applyを持っている。

関連する問題