SQL Server 查询以按订单查找所有产品的总价

chc*_*ist 3 sql sql-server

我有一个订单表,(id,orderCode,productId,quantity,color,size) 其中可以包含以下条目:

1,O20100812,163,2,BLUE,Medium
1,O20100812,163,3,BLUE,Larger
1,O20100812,145,4,RED,Large etc
1,O20100815,134,5,RED,Large etc
1,O20100815,143,2,BLACK,Large etc
1,O20100815,112,8,BLACK,Large etc
Run Code Online (Sandbox Code Playgroud)

和另一个表产品 (id,name,price)

我想要的是使用 orderCode 020100812 找到订单中所有产品的总价。我应该在加入产品表时 DISTINCT 选择订单代码然后求和数量吗?

Mic*_*sov 5

为什么需要不同?

Select SUM(o.Quantity * Price) TotalPrice
FROM Orders o JOIN Products p ON (o.ProductId = p.Id)
WHERE OrderCode = '020100812'
Run Code Online (Sandbox Code Playgroud)

对于所有订单,您可以使用以下查询:

Select OrderCode, SUM(o.Quantity * Price) TotalPrice
FROM Orders o JOIN Products p ON (o.ProductId = p.Id)
Group by OrderCode
Run Code Online (Sandbox Code Playgroud)