【发布时间】:2014-09-03 23:14:13
【问题描述】:
Select
P.ProductName, WFS.Status, OI.Quantity, OI.Price
from
OrderItem As OI
Inner Join
Order As O On OI.OrderID = O.ID AND OI.ItemType = 1
Inner Join
Product P On OI.ProductID = P.ID
Inner Join
WorfFlowStatus As WFS On O.StatusID = WFS.ID
此查询返回行:
ProductName Status Quantity Price
-------------------------------------------
ABC Shipped 10 100
ABC Shipped 10 100
BCE Pending 20 200
现在我想在一行中选择相同的产品,但应该添加数量和价格。例如
ABC Shipped 20 200
BCE Pending 20 200
如果状态和产品名称相同,则添加数量和价格,如果产品不同,则不添加数量和价格。
【问题讨论】:
-
您需要对数据进行分组。阅读
GROUP BY子句 -
嗨实际上我也在分组完整的查询是这样的。从 OrderItem 中选择 P.ProductName,WFS.Status,OI.Quantity,OI.Price As OI Inner Join Order As O On OI.OrderID = O.ID AND OI.ItemType = 1 在 OI.ProductID 上内连接产品 P = P.ID 在 O.StatusID 上内连接 WorfFlowStatus 作为 WFS = WFS.ID 按 P.ProductName、WFS.Status、OI.Quantity、OI 分组.价格
-
根据你的SQL语句你不是
-
不,你可以看到我在 cmets 部分添加的那个
-
你已经得到了答案,但我建议你阅读互联网上的聚合函数和 GROUP BY 子句
标签: sql sql-server select