0

Access データベースを SQL Server に移植していて、次のことに遭遇しました。

UPDATE 
[tableA], 
[tableB], 
[tableC] 
SET [tableC].STATION_NB = [tableB]!Station
WHERE ((([tableA]![FirstOfCOMPONENT NUMBER] & [tableB]![COMPONENT NUMBER]) Like [tableC]![MOTOR_AND_PART]) 
    AND (([tableC]![PART]) Like [tableB]![COMPONENT NUMBER]));

有罪を保護するために、テーブルの名前が変更されました。これは、すべてのモーターの組み合わせ、固有の部品、および部品がモーターに取り付けられたステーション番号の固有のリストを作成するために作成されたようです。もちろん、これは T-SQL コードではまったく問題ないので、移行のために修正する試みを次に示します。

UPDATE [tableC]
SET [tableC].[STATION_NB] =
    (SELECT b.Station
    FROM [tableB] b
    WHERE ((([tableA].[FirstOfCOMPONENT NUMBER] + b.[COMPONENT NUMBER]) Like [tableC].[MOTOR_AND_PART]) 
        AND (([tableC].[PART]) Like b.[COMPONENT NUMBER])))

それを実行すると、SSMS は、The multi-part identifier "tableA.FirstOfCOMPONENT NUMBER" could not be bound.これは JOIN を実行しなかったためだと思われると不平を言います。ただし、 には興味がありません[tableA].[FirstOfCOMPONENT NUMBER]。連結結果に興味があります。しかし、どのように JOIN を実行して tableA をクエリに適切に取り込むことができますか?

4

1 に答える 1