2017-04-02 10 views
1

この種類の選択クエリ(疑似コード)を使用することはできません。 UDFは、指定された 'UID_VEHICLE'に対して1行に8列の表を戻します。 'UID_VEHICLE'が3308のような定数として提供されているときは完全に動作しますが、返される行数は最大100行です。あなたのご意見やソリューションが歓迎されているSQL Serverのユーザー定義関数がテーブルを返します - 選択クエリから呼び出すことができません

SELECT 
    * 
FROM 
    [dbo].[fnGetNextDOT_InspectionData](UID_VEHICLE) 
WHERE 
    UID_VEHICLE IN (SELECT UID_VEHICLE 
        FROM tVEHICLES 
        WHERE UID_CUSTOMER = 88); 

... TVFへのクエリから行の値を渡すときおかげで...ジョン

答えて

1

、あなたは(SQL Server 2005に始まる)CROSS APPLYまたはOUTER APPLYを使用する必要があります:

SELECT * -- or dot.*, or whatever is desired 
FROM  tVEHICLES veh 
CROSS APPLY [dbo].[fnGetNextDOT_InspectionData](veh.UID_VEHICLE) dot 
WHERE veh.UID_CUSTOMER = 88; 
+0

EXCELLENT !!!これは答えですが、マイナーチェンジします.SELECTドット。* ...ありがとうございます - あなたは非常にスマートです! –

+0

@ JohnD Yerようこそ、私はその答えを更新しました。あなたが必要とする列がわからず、必要に応じて 'SELECT'を変更すると思ったので、最初はそれを含めませんでした。 –

+0

@ srutzky ...おはようございます...私はこれを答えとしてマークしましたが、あなたの答えはありがとう、私は結果セットをさらに調べると、CROSSをOUTERに設定しました。顧客= 88が返されています。何か案は? –

関連する問題