2

次のコードは Sage200 で機能します。

SELECT bcs.BomReference
    ,bcs.DateTimeCosted
    ,bcs.TotalCost
FROM (
    SELECT BomReference
        ,Max(DateTimeCosted) AS MaxDate
    FROM NDM_Sage200.dbo.BomCostSession BomCostSession
    GROUP BY BomReference
    ) AS ldc
INNER JOIN BomCostSession AS bcs ON bcs.BomReference = ldc.BomReference
    AND bcs.DateTimeCosted = ldc.MaxDate
ORDER BY BomReference

これを INNER JOIN で別のテーブルに拡張して ( BomReferenceを使用して) より多くの列を取得しようとするとすぐに、次のエラー メッセージが表示されます: Could not add the table ( .
See below for example of modified code; I have to use 2 joins必要なテーブルに到達しますが、作業コードに参加しても同じエラーが発生します。

SELECT bcs.BomReference, bcs.DateTimeCosted, bcs.TotalCost, BomBuildProduct.StockDescription 
FROM (
SELECT BomReference, 
Max(DateTimeCosted) AS MaxDate
FROM NDM_Sage200.dbo.BomCostSession BomCostSession 
GROUP BY BomReference 
) AS ldc 
INNER JOIN 
BomCostSession as bcs 
ON bcs.BomReference = ldc.BomReference AND 
bcs.DateTimeCosted = ldc.MaxDate
***** Fails when adding INNER JOIN here *****
    INNER JOIN
    BomBuildPackage
    ON BomCostSession.BomBuildPackageID = BomBuildPackage.BomBuildPackageID
    INNER JOIN
    BomBuildProduct
    ON BomBuildPackage.BomRecordID = BomBuildProduct.BomRecordID
    ORDER BY BomReference

私は何を間違っていますか?複数のテーブルのデータを使用してクエリを拡張する必要があります。
また、機能するセクションでMSQueryを使用すると、テーブルを追加するオプションが提供されないため、オプションを試すのがかなり難しくなると思います。
なんで ?

4

1 に答える 1