2016-06-30 7 views
1

多くのインラインSQLクエリを持つアクセスアプリケーションを作成しています。構文は、ssmsで直接実行される通常のクエリの構文と非常に似ていますが、いくつかの違いがあります。今私は理解していない更新クエリを実行しました。これは、更新ステートメントの直後に内部結合を使用しますが、ssmsはこのクエリが構築される方法が嫌いです。VBA UpdateクエリをSQL構文に変換する

間違ったテーブルを一切更新しないので、クエリを正しく変換する方法を理解する助けを頼んでいます。

これは、変換せずにクエリです:あなたは、以下のようにしようとした場合

UPDATE Product 
INNER JOIN 
(
    ( Arrangement 
     INNER JOIN Publishers 
      ON Arrangement.PubKey = Publishers.BookPubKey 
    ) 
    INNER JOIN Arrangement_Notation_File 
     ON Arrangement.ArrangementID = Arrangement_Notation_File.ArrangementID 
) 
ON Product.ProductID = Arrangement_Notation_File.ProductID 

SET 
    Product.Title = [arrangement].[Title], 
    Product.ProductType = ProductType, 
    Product.ForSale = -1, 
    Product.IsDigital = -1, 
    Product.ListPrice = [Arrangement].[Price], 
    Product.PublicationDate = iif(isnull(FirstPublicationDate), iif(isnull(PublicationDate), '" & Now() & "', PublicationDate), FirstPublicationDate), 
    Product.SongID = Arrangement.SongID 

WHERE (((Arrangement_Notation_File.ProductID)='" & ID & "')); 

答えて

1

何。 SETJOINは交換されており、JOINが適切であることに注意してください。

UPDATE P 
SET 
    Product.Title = [arrangement].[Title], 
    Product.ProductType = ProductType, 
    Product.ForSale = -1, 
    Product.IsDigital = -1, 
    Product.ListPrice = [Arrangement].[Price], 
    Product.PublicationDate = iif(isnull(FirstPublicationDate), iif(isnull(PublicationDate), '" & Now() & "', PublicationDate), FirstPublicationDate), 
    Product.SongID = Arrangement.SongID 
FROM Product P 
INNER JOIN Arrangement_Notation_File ANF ON P.ProductID = ANF.ProductID 
INNER JOIN Arrangement A ON A.ArrangementID = ANF.ArrangementID 
INNER JOIN Publishers PU ON A.PubKey = PU.BookPubKey 
WHERE ANF.ProductID ='" & ID & "'; 
+0

ありがとうRahul。これはうまくいった。 –

関連する問題