2017-03-06 117 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