选择MySQL查询中的最后一行和列总和

时间:2017-03-07 05:51:25

标签: mysql

我的表:

date        Id  name    amount  payment
01/05/2017  01  Maxi    50000   Dec’16
01/10/2017  02  Shirly  50000   Jan’17
01/28/2017  01  Maxi    100000  Jan’17
02/12/2017  02  Shirly  50000   Feb’17

在MySQL中我需要什么查询?

Id  name    SUM(amount)  LAST(payment)
01  Maxi    1,50,000      Jan’17
02  Shirly  100,000       Feb’17

2 个答案:

答案 0 :(得分:0)

SELECT Id,name,SUM(amount),MAX(STR_TO_DATE(payment,'%b’%y')) AS LAST(payment) FROM TABLENAME GROUP BY Id

尝试以上代码。希望这会对你有所帮助。

答案 1 :(得分:0)

您可以使用group_concat按特定顺序累积付款值,然后使用substring_index从中提取第一个:

select   id, 
         name, 
         sum(amount), 
         substring_index(group_concat(payment order by date desc), ',', 1)
from     mytable
group by id

这假设您希望按 date 列的顺序进行最后一次付款。 付款列似乎是非日期值,按排序无效。

如果您需要按付款日期的顺序获取付款的最后一个值,则应将该列定义为日期。然后你可以做一个简单的max

select   id, 
         name, 
         sum(amount), 
         max(payment)
from     mytable
group by id