小编use*_*790的帖子

具有MS Access的多个内部联接产生多个结果..需要分组和总计

我花了大约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;
Run Code Online (Sandbox Code Playgroud)

结果:
在此输入图像描述

基本上,我想要一个查询,它将汇总每个订单的每个材料,小时和发票.我在这个电子表格中根据需要制作的东西可以在这里看到:
在此输入图像描述

显然,这个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 …
Run Code Online (Sandbox Code Playgroud)

sql ms-access

5
推荐指数
1
解决办法
4188
查看次数

标签 统计

ms-access ×1

sql ×1