晚上好,
我的问题是当我运行查询时,它拥有我想要的一切,但我的子查询似乎无法正常工作。它对我所有的客户都有相同的价值。我真的不知道如何解决这个问题。如果我在其中添加 CUSTOMER.CUS_CODE,那么它会要求我使用 EXISTS。所以平均工作正常吗?我决定使用 Avg 聚合函数,但遇到了同样的问题。
我的表是:
- 客户(CUS_CODE)
- 发票(CUS_CODE,INV_NUMBER)
- LINE(INV_NUMBER、LINE_NUMBER、LINE_UNITS、LINE_PRICE)
在这个问题中,我正在尝试使用子查询获取每个客户生产的每件产品的平均购买量。
SELECT CUSTOMER.CUS_CODE, CUS_FNAME+" "+CUS_LNAME AS Name, CUSTOMER.CUS_BALANCE, Sum([LINE]![LINE_NUMBER]*
[LINE]![LINE_PRICE]) AS Total_purchases, Count(INVOICE.INV_NUMBER) AS Number_of_purchases,
(
SELECT Avg([LINE]![LINE_NUMBER]*[LINE]![LINE_PRICE])
FROM INVOICE, LINE
WHERE INVOICE.INV_NUMBER = LINE.INV_NUMBER
) AS Average_purchase_amount
FROM CUSTOMER, INVOICE, LINE
WHERE ((CUSTOMER.CUS_CODE)=[INVOICE].[CUS_CODE]) AND ((INVOICE.INV_NUMBER)=[LINE].[INV_NUMBER])
GROUP BY CUSTOMER.CUS_CODE, CUS_FNAME+" "+CUS_LNAME, CUSTOMER.CUS_BALANCE;
我的错误似乎在于我实现子查询的方式。我如何使每个客户的平均水平。例如,在 INVOICE 表中,我有许多拥有多张发票的客户,因此他们订购了许多不同的物品。因此,对于同一客户的每张发票,我想计算平均价格,然后根据他们订购的产品数量取该价格的平均值。
我觉得我的头在这一点上爆炸
如果您有任何问题或需要更多信息,我会更新。
谢谢你。