从2个不同的表中计算(数量*价格)的和

Mar*_*rko 8 sql sum

我有两张表如下

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.quantityp.price为null,则SUM将返回NULL.