簡體   English   中英

在MySQL查詢中選擇最后一行和列的總和

[英]Select last row and sum of column in MySQL query

我的桌子:

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
SELECT Id,name,SUM(amount),MAX(STR_TO_DATE(payment,'%b’%y')) AS LAST(payment) FROM TABLENAME GROUP BY Id

嘗試上面的代碼。 希望這會幫助你。

您可以使用group_concat以一定順序累積付款值,然后使用substring_index從中提取第一個:

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

假設您要在日期列中接受訂單中的最后一筆付款。 支付列似乎是一個非日期值,將其排序毫無用處。

如果您需要按付款日期的順序獲取最后的付款值,則應將該列定義為日期。 然后,您可以做一個簡單的max

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM