MySQL计算月份之间的差异

时间:2016-05-14 14:41:56

标签: mysql

我有以下代码:

select DATE_FORMAT(`Import_Date`, '%M %Y') as Month, 
       concat('R ', FORMAT(SUM(Total_Amount),2)) as Total_Amount 
from `overtime` 
group by `Import_Date` 
order by EXTRACT(YEAR_MONTH FROM `Import_Date`);

产生这个:

+---------------+----------------+
| Month         | Total_Amount   |
+---------------+----------------+
| November 2015 | R 4,649,211.48 |
| December 2015 | R 4,470,413.37 |
| January 2016  | R 4,504,793.31 |
| February 2016 | R 3,143,027.89 |
| March 2016    | R 2,026,576.65 |
| April 2016    | R 3,632,761.58 |
+---------------+----------------+

如何计算两行之间的差异作为一个名为Diff ...?

的单独列

1 个答案:

答案 0 :(得分:0)

尝试

select DATE_FORMAT(`Import_Date`, '%M %Y') as Month, 
       concat('R ', FORMAT(SUM(Total_Amount),2)) as Total_Amount,
       SUM(Total_Amount) - @previous as diff,
       @previous := SUM(Total_Amount)
from `overtime` 
cross join (select @previous := 0) p
group by `Import_Date` 
order by EXTRACT(YEAR_MONTH FROM `Import_Date`);