2017-03-06 124 views
1

我需要查询才能返回最经常销售的产品。获得销售额最高的产品

我有两个表使用。

产品

IDPRO(PK) DESCRIP     STOCK  PRICE 

    4000  PIZZA      7  2000 
    4001  HAMBURGUESA    8  800 
    4002  PAELLA      1  1000 
    4003  CORDERO     5  3000 
    4004  COMIDA CHINA    9  500 
    4005  ALBONDIGAS     9  500 

详细

IDPRO(FK) Amount 

    4002   2 
    4003   1 
    4004   1 
    4002   3 
    4002   1 
    4003  100 
    4004   50 
    4004   3 
    4005   10 

的结果会是这样的

CORDERO 

既然是售出单位量最高的产品。

+0

什么是CANTIDAD列? – Wanderer

+0

我们如何知道已售物品的数量? – jarlh

+0

您正在使用哪些DBMS? Postgres的?甲骨文? –

回答

0

如果你需要的总数量,你可以通过在连接表使用总和组

select t1.IDPRO, t1.DESCRIP, sum(t2.Amount) total 
FROM Product t1 
INNER JOIN DETAILS t2 on t2.IDART = t1.IDPRO 
GROUP BY t1.IDPRO, t1.DESCRIP 
ORDER BY total desc 
0

首先找到CANTIDAD列的总和为每个产品,并选择前1行,并加入到表1

查询

select top 1 t1.IDPRO, t1.DESCRIP, t2.total 
from Product t1 
join (
    select IDART, sum(Amount) as total 
    from Details 
    group by IDART 
)t2 
on t1.IDPRO = t2.IDART 
order by t2.total desc; 
-1

尝试somethink这样的顶级1:

WITH MAIN AS(
SELECT main.IDPRO, main.DESCRIP, main.CANTIDAD from Details det 
LEFT JOIN Product main ON main.IDPRO=det.IDART) 

SELECT TOP 1 * from MAIN