我有一个包含这些行的销售表:
cd_produto是产品代码,qtd_produto是已售出产品的数量(daaah)
我想获得最畅销的产品。在这种情况下,它将是产品#1,因为它总和为8(1 + 7)。 第二个是#3,因为它是6。
如果我跑
SELECT TOP 3 cd_produto, qtd_produto FROM itens_vendas ORDER BY qtd_produto DESC
我会通过顶级销售获得它们。但它不会对每个产品的qtd求和。它会认为1是最畅销但只是因为它的值是7,它将忽略1。
我如何通过每种产品的SUM订购它们?
答案 0 :(得分:3)
使用group by
并获取sum
并在order by
中使用它。
SELECT TOP 3 cd_produto,
sum(qtd_produto)
FROM itens_vendas
GROUP BY cd_produto
ORDER BY sum(qtd_produto) DESC
编辑:
SELECT TOP 3 i.cd_produto,
p.productname, sum(i.qtd_produto)
FROM itens_vendas i
join producttable p on i.cd_produto = p.product_id
GROUP BY cd_produto
ORDER BY sum(qtd_produto) DESC