2010-12-16 67 views
0

我有两个包含相关数据的表。一张表格为products,另一张表格为price。在价格表中,一个产品可能会出现好几次。我怎样才能通过分组来返回结果。使用左连接的SQL分组

下面是我的查询,但输出不与

SELECT distinct 
      p.Product, 
      p.Qty, 
      MAX(pr.netprice) 

    FROM Products p 
    LEFT OUTER JOIN Price pr ON p.Product=pr.Product 
    WHERE p.brand='' 
    GROUP BY p.Product, p.Qty 
+0

这应该工作。你想如何看待结果? – 2010-12-16 09:09:07

+0

这里使用不同的内涵是什么? – 2010-12-16 09:15:05

+0

您是否试图在价格表中检索产品及其最高价格(最高价格)?我可以写查询,但不认为我完全理解你想要什么。 – 2010-12-16 09:24:54

回答

0

组你也许应该离开Qtygroup by,像这样的:

SELECT p.Product, 
     MAX(pr.netprice) 

    FROM Products p 
    LEFT OUTER JOIN Price pr ON p.Product=pr.Product 
    WHERE p.brand='' 
    GROUP BY p.Product 
+1

这将不会运行,您还必须从选择列表中删除p.Qty。 – Jan 2010-12-16 09:15:12

+0

@Jan - 真。这可能无法运行,因为您需要在函数中包含该列或将其放入GROUP BY – 2010-12-16 09:18:30

+0

如果在组列表中删除Qty ----在选择列表中无效,因为它未包含在集合函数或GROUP BY子句中。 – user543425 2010-12-16 09:22:59