私は答えられた同様の質問を探すのに20分を費やしましたが、ほとんどはMSAccessデータベースに指定されていません。
残念ながら、SQLの私の経験は非常に限られているので、これについてのご意見をいただければ幸いです。
こちらのリンクからAccessDatabaseをダウンロードして、TestDB.zipを実行しようとしていることを確認できます。
この画像は、MS Access 2003での非常に基本的なテーブル設定の例として、私が達成したいことを示しています。
基本的に、関連するテーブルに保持されているすべての情報を含む注文を表示するSQLクエリを実行したいと思います。
明らかに、以下のようなSQLクエリでは、情報が繰り返された複数の行が表示されますが、これは私が望んでいることではありません。
SELECT Orders.OrderID, Orders.OrderTitle, Materials.Material, Materials.MaterialCost,
Labour.HoursTaken, Invoices.InvoiceAmount
FROM ((Orders INNER JOIN Labour ON Orders.OrderID = Labour.OrderID)
INNER JOIN Materials ON Orders.OrderID = Materials.OrderID)
INNER JOIN Invoices ON Orders.OrderID = Invoices.OrderID;
結果:
基本的に、各注文の各資料、時間、請求書を合計するクエリが必要です。必要に応じてこのスプレッドシートで作成したものをここで確認できます。
明らかに、このSQLは機能しません。これは、内部結合による複数の行のために、図がいたるところにあるためです。
SELECT Orders.OrderID, Orders.OrderTitle, Sum(Materials.MaterialCost) AS SumOfMaterialCost,
Sum(Labour.HoursTaken) AS SumOfHoursTaken,
Sum(Invoices.InvoiceAmount) AS SumOfInvoiceAmount
FROM ((Orders INNER JOIN Labour ON Orders.OrderID = Labour.OrderID)
INNER JOIN Materials ON Orders.OrderID = Materials.OrderID)
INNER JOIN Invoices ON Orders.OrderID = Invoices.OrderID
GROUP BY Orders.OrderID, Orders.OrderTitle;
ここでの結果:
複数のSELECTステートメントを見てきましたが、これらはMSAccessでサポートされているとは思いません。