2014-05-14 119 views
0

我有這兩個表:MySQL查詢選擇最大值

product 
id | name 
1 | A 
2 | B 

history 
id_product | year | month | percent 
1   | 2014 | 2 | 0 
1   | 2014 | 3 | 20 
1   | 2014 | 4 | 60 

我怎樣才能獲得最高百分比如果月份是當月或一個月之前,例如:

SELECT * FROM history 
WHERE id_product IN 
    (SELECT id FROM product 
     WHERE id = 1) 
    AND ((year = 2014 AND month = 3) OR 
     (year = 2014 AND month = 2)) 
ORDER BY year DESC, month DESC 

這將輸出:20,但它實際上顯示0,它總是給我在月前值...任何建議都歡迎...謝謝!

回答

0
SELECT max(hs.`percent`) as `percent`, hs.id_product, p.name FROM 
(SELECT * 
FROM history 
WHERE ((year = 2014 AND month = 3) OR 
     (year = 2014 AND month = 2)) 
) as hs 
LEFT JOIN `product` as p on p.id=hs.id_product 
GROUP BY hs.id_product 

試試這個。