我的表:
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
答案 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