最后在Mysql组中输入的值

时间:2017-03-18 08:23:40

标签: mysql

我的查询 -

SELECT id, MAX(sl),  details_sp FROM shareholderreceive GROUP BY id

和结果

 id     MAX(sl)     details_sp  
1       76  
2       74  
3       64  
4       67  
5       69  
6       70  
10      72 

但我需要那些MAX(sl)where details_sp列最后输入的值。

我的预期表是 -

 id     MAX(sl)     details_sp  
1       72              Jul'16
2       74  
3       64  
4       62              Aug'16  
5       69  
6       70  
10      71              Aug'16

这里,数据类型details_sp是Varchar。 在MySQL中我需要什么查询?

1 个答案:

答案 0 :(得分:-1)

我认为你的意思是,如果填写了details_sp,你需要该行的sl值,当没有details_sp时你需要max sl值吗?

如果是这样,请不要使用MAX(),而是将ORDER BY与GROUP BY一起使用。

SELECT id, sl, details_sp 
FROM shareholderreceive 
ORDER BY details_sp DESC, sl DESC 
GROUP BY id

唯一的问题是,当它是varchar值时,你永远不能按日期排序。这意味着您永远无法获得仅使用varchar作为日期的最新条目。

因此,如果有办法,请将details_sp设为日期值(当您没有一天只使用该月的第一天时,2017-06-01为juli 2017)并使用DATE_FORMAT() PHP中的MySQL或date_format(或JAVA等)。