我有两张表如下
PRODUCT 表
Id | Name | Price
Run Code Online (Sandbox Code Playgroud)
还有一张ORDERITEM桌子
Id | OrderId | ProductId | Quantity
Run Code Online (Sandbox Code Playgroud)
我要做的是,计算每个产品的小计价格(数量*价格),然后为整个订单计算总计价值.
我正在尝试这样的事情
SELECT Id, SUM(Quantity * (select Price from Product where Id = Id)) as qty
FROM OrderItem o
WHERE OrderId = @OrderId
Run Code Online (Sandbox Code Playgroud)
但当然这不起作用:)
任何帮助赞赏!
编辑:我只想显示整个订单的总计,所以基本上是OrderItem中每一行的Quantity*Price的总和.这是一些示例数据.
样本数据
表产品
Id Name Price
1 Tomatoes 20.09
4 Cucumbers 27.72
5 Oranges 21.13
6 Lemons 20.05
7 Apples 12.05
Run Code Online (Sandbox Code Playgroud)
表OrderItem
Id OrderId ProductId Quantity
151 883 1 22
152 883 4 11
153 883 5 8
154 883 6 62
Run Code Online (Sandbox Code Playgroud)
中号
OMG*_*ies 19
使用:
SELECT oi.orderid,
SUM(oi.quantity * p.price) AS grand_total,
FROM ORDERITEM oi
JOIN PRODUCT p ON p.id = oi.productid
WHERE oi.orderid = @OrderId
GROUP BY oi.orderid
Run Code Online (Sandbox Code Playgroud)
请注意,如果其中一个oi.quantity或p.price为null,则SUM将返回NULL.