2014-05-14 118 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 

试试这个。