我有三张表如下:
菜单项
MenuItemID ItemName ItemPrice
X0001 LatteSmall $15
X0002 LatteBig $18
X0003 MochaSmall $16
订单
OrderID MenuItemID ReceiptID`
O000001 X0001 R000001
O000002 X0002 R000001
O000003 X0001 R000002
O000004 X0003 R000003
收据
ReceiptID ReceiptPrice
R00000001 ???????????
R00000002 ???????????
R00000003 ???????????
R00000004 ???????????
我正在尝试做的是:计算每个订单的价格,然后总结属于每个收据的订单。列出ReceiptPrice
表中Receipt
字段中的总计值。
如何使用Microsoft Access 2010上的单个查询执行此操作?
感谢任何帮助=))
答案 0 :(得分:0)
从您提供的示例数据来看,它有点难以辨别,但我认为每张收据可能包含多个订单。
以下查询将返回每张收据上的每个订单,每个订单的总菜单项目成本。这假设ItemPrice
是数字,并且实际上不包含'$'字符,也许您可以确认?
SELECT O.ReceiptID, O.OrderID, SUM(MI.ItemPrice) AS TotalReceiptPrice
FROM Orders AS O INNER JOIN MenuItem AS MI ON O.MenuItemID = MI.MenuItemID
GROUP BY O.ReceiptID, O.OrderID
如果您只希望查看每张收据的总金额,包括多个订单,请尝试此操作;
SELECT O.ReceiptID, SUM(MI.ItemPrice) AS TotalReceiptPrice
FROM Orders AS O INNER JOIN MenuItem AS MI ON O.MenuItemID = MI.MenuItemID
GROUP BY O.ReceiptID
答案 1 :(得分:0)
您想要更新数据库。这是一种方式:
update receipt
set receiptprice = (select sum(itemprice)
from menuitem inner join
orders
on menuitem.menuitemid = orders.menuitemid
where orders.receiptid = receipt.receiptid
);