0

私は MS Office Access を初めて使用します。このクエリの SQL ビューの作成に問題があります。「あいまいな外部結合が含まれているため、SQL ステートメントを実行できませんでした。結合の 1 つを強制的に実行するには、最初の結合を実行する別のクエリを作成し、そのクエリを SQL ステートメントに含めます」というエラーが表示され続けます。

1) MS SQL ビューで別のクエリを作成し、そのクエリをメインの SQL ステートメントに含めるにはどうすればよいですか?

2) エラーが発生する理由がわかりません??

SELECT [Table : PurchaseDetails].PurchaseID
FROM [Table: Supplier] 
LEFT JOIN ([Table : Purchase] 

LEFT JOIN ([Table : Product]

LEFT JOIN [Table : PurchaseDetails] 

ON [Table : Product].ProductID = [Table : PurchaseDetails].ProductID)

ON [Table : Purchase].PurchaseID = [Table : PurchaseDetails].PurchaseID)

ON [Table: Supplier].SupplierID = [Table :   Purchase].SupplierID;
4

2 に答える 2

0

Access についてはよくわかりませんが、SQL では、ON コマンドは JOIN の後に続く必要があります。

SELECT [Table : PurchaseDetails].PurchaseID
FROM [Table: Supplier] 
LEFT JOIN [Table : Purchase] 
ON [Table : Purchase].PurchaseID = [Table : PurchaseDetails].PurchaseID

LEFT JOIN [Table : Product]
ON [Table : Product].ProductID = [Table : PurchaseDetails].ProductID

LEFT JOIN [Table : PurchaseDetails] 
ON [Table: Supplier].SupplierID = [Table :   Purchase].SupplierID;
于 2013-05-14T13:05:26.087 に答える
0

MS SQL ビューで別のクエリを作成し、そのクエリをメインの SQL ステートメントに含めるにはどうすればよいですか?

複数の LEFT JOIN を含むクエリがあり、データベース エンジンは、テーブルをどのように結合するかを正確に判断できません。具体的には、JOIN を適用する順序に応じて、異なる結果が返される (または返される可能性がある)と判断されました。

だから、それはあなたに求めています

  • テーブルのサブセットのみを使用してクエリを作成し、

  • そのクエリを Access に保存してから、

  • 他のテーブルと保存されたクエリを使用して最終結果を生成する別のクエリを作成します。

たとえば、次のクエリを作成し、Access に次のように保存できます。Purchase_PurchaseDetails

SELECT Purchase.PurchaseID, Purchase.SupplierID
FROM Purchase LEFT JOIN PurchaseDetails
    ON Purchase.PurchaseID=PurchaseDetails.PurchaseID

次に、そのクエリを別のクエリで使用できます。

SELECT Supplier.SupplierID
FROM Suppliers LEFT JOIN Purchase_PurchaseDetails
    ON Supplier.SupplierID=Purchase_PurchaseDetails.SupplierID

...またはそれらの線に沿った何か。

于 2013-05-14T14:13:28.783 に答える