没有在Group by Clause中获得正确的输出

时间:2015-04-11 21:40:34

标签: mysql group-by inner-join

我一直在 asp.net 中使用 group by 内部联接子句尝试以下查询:

SELECT tblVendorItem.Name AS Product, 
       tblEventItem.Quantity * tblEventItem.Price AS Sale
FROM 
       tblEventService 
INNER JOIN tblEventItem ON 
       tblEventService.EventServiceID = tblEventItem.EventServiceID 
INNER JOIN tblVendorItem ON 
       tblVendorItem.VendorItemID = tblEventItem.VendorItemID
WHERE        
       (tblEventService.VendorID = 2)
GROUP BY 
        tblVendorItem.Name, tblEventItem.Quantity, tblEventItem.Price

执行此操作时,我得到的是:

enter image description here

我真正想要的是,产品不应该重复,总销量应该来了!

例如:梅赛德斯75

任何人都可以帮助我吗?

我也在附加数据库:

enter image description here

1 个答案:

答案 0 :(得分:1)

INNER JOIN tblEventItem ON 
   tblEventService.EventServiceID = tblEventItem.EventServiceID 

GROUP BY 
    tblVendorItem.Name, tblEventItem.Quantity, tblEventItem.Price

在group by子句中,删除tblEventItem.Quantity,tblEventItem.Price。因此,您的查询应该在两个地方更改。 首先,SUM(价格*数量)和第二个:

GROUP BY 
    tblVendorItem.Name

原因是这样的: Group By X表示将所有具有相同X值的组合放在一组中。

按X组,Y表示将所有具有相同值的X和Y放在一组中。

Group By X表示将所有具有相同X值的组合放在一组中。

Group By X,Y,Z表示将所有具有相同值的值放在一个组中的X,Y和Z. 我希望这会有所帮助。Using group by on multiple columns 奖励! :)