使用左连接的SQL分组

使用左连接的SQL分组,sql,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=

我有两个表和相关数据。一个表用于
产品
,另一个表用于
价格
。在价格表中,一种产品可能出现多次。如何通过分组返回结果

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

   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 

您可能应该将
数量
分组中删除,如下所示:

 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

这应该行得通。您希望结果看起来如何?这里使用distinct的意图是什么?您是否试图检索价格表中的产品及其最高价格(max)?我可以写查询,但我不认为我完全理解您想要什么。您能给出一些您想要的样本数据和样本结果吗?这不会运行,您还必须从选择列表中删除p.Qty。@Jan-true。这不可能运行,因为您需要将该列包含在函数中或将其放入GROUP ByDip中。如果GROUP remove for Quantity----在选择列表中无效,则此错误是因为它不包含在聚合函数或GROUP BY子句中。啊,对不起。这就是我的意思。想一想,根据您想要做的事情,可以省略数量,或者使用SUM(数量)或MAX(数量)。如果使用SUM(数量),它将返回更多行,如价格表中所示,一个产品可能会出现多次&使用MAX(数量)返回最大值的行。。(使用总和和最大值)没有帮助。。修改查询以获得正确输出的任何其他方法