【发布时间】:2015-05-06 09:32:05
【问题描述】:
我在 Microsoft Access 中有 2 个表:Contract_1 和 Contract Items
Contract_1 的列如下:Contract ID, Contract Value, Date, Committed Prod_ID, 其值示例如下:
1 $100,000 3/5/15 111
Contract Items 有 Prod ID, Product, Unit Price,它们的值示例如下:
111 Light Bulb $5.00
它们通过一对多关系链接,Prod ID {PK} 到 Contract_1 中的已提交 Prod_ID。
当我编写查询以显示产品和总价的摘要时,我得到
Product| Unit Price| Quantity| Total Price|
Light Bulb| $5.00| 2| $10.00
Light Bulb| $5.00| 3| $15.00
在我的数据中,我有 2 个合同,合同 ID 1 和 5,都购买了灯泡。但既然它们是同一个产品,我怎样才能让它们显示为总共 5 而不是 3 和 2? 我尝试使用 GROUP BY,但它不起作用。我当前的查询如下所示:
SELECT [Contract Items].Product,
[Contract Items].[Unit Price],
Contract_1.[Actual Qty] AS Quantity,
[Unit Price]*[Quantity] AS [Total Price]
FROM [Contract Items]
INNER JOIN Contract_1
ON [Contract Items].[Prod ID]=Contract_1.[Committed Prod_ID]
GROUP BY [Contract Items].Product,
[Contract Items].[Unit Price],
Contract_1.[Actual Qty],
[Contract Items].[Quantity];
谢谢!
【问题讨论】:
-
您需要聚合函数 SUM,例如总和(数量)。 (然后从 GROUP BY 列表中删除 Quantity。)
-
@jarlh 这就是我所做的。但它仍然不起作用 SELECT [Contract Items].Product, [Contract Items].[Unit Price], Contract_1.[Actual Qty] AS Quantity, [Unit Price]*SUM([Quantity]) AS [Total Price] FROM [ Contract Items] INNER JOIN Contract_1 ON [Contract Items].[Prod ID]=Contract_1.[Committed Prod_ID] GROUP BY [Contract Items].Product, [Contract Items].[Unit Price], Contract_1.[Actual Qty];