我花了 20 分钟的时间寻找已回答的类似问题,但大多数问题并未针对 MS Access 数据库指定。
不幸的是,我对 SQL 的经验非常有限,因此我很感激您对此的意见。
您可以从此处的此链接下载 Access 数据库,以查看我要完成的任务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 不起作用,因为由于 INNER JOINS 导致的多行,数字到处都是。
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 语句,但我认为 MS Access 不支持这些语句