使用左连接的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(数量)返回最大值的行。。(使用总和和最大值)没有帮助。。修改查询以获得正确输出的任何其他方法