我有(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
另一个包含(id,name,price)
我想要的是使用orderCode 020100812查找订单中所有产品的总价。我应该DISTINCT选择订单代码,然后在加入产品表时补充数量吗?
答案 0 :(得分:4)
为什么你需要分明?
Select SUM(o.Quantity * Price) TotalPrice
FROM Orders o JOIN Products p ON (o.ProductId = p.Id)
WHERE OrderCode = '020100812'
对于所有订单,您可以使用以下查询:
Select OrderCode, SUM(o.Quantity * Price) TotalPrice
FROM Orders o JOIN Products p ON (o.ProductId = p.Id)
Group by OrderCode
答案 1 :(得分:1)
不,GROUP BY
然后您可以使用SUM
在整个群组中汇总,例如
select O.id, O.ordercode, sum(P.price * O.quantity) as total
from orders O
join products P on P.id = O.productid
group by O.id, O.ordercode
将显示每个订单中每个订单代码的总价 - 如果您想要所有订单中的所有订单代码,则需要
select O.ordercode, sum(P.price * O.quantity) as total
from orders O
join products P on P.id = O.productid
group by O.ordercode
即。不要在订单ID中分组。
(我猜O20100812只是一个例子而你实际上想要所有订单代码?)