在Colums//Mysql中获取月份和年份

在Colums//Mysql中获取月份和年份,mysql,cumulative-sum,Mysql,Cumulative Sum,我在Mysql中有以下Select,它使我能够按月列出每个客户的金额。它现在运行得很好。 我希望在每一列中不仅按月份,而且在第1列中添加相应的年份,而不是“1”,在第2列中添加“2015年1月”、“2015年2月”,等等 另外,作为第一行,我如何将相应列的总和分组,以获得此值 Jan-2015 Feb-2015 Mar-2015 Total 1000 1600 ... Customer1 100

我在Mysql中有以下Select,它使我能够按月列出每个客户的金额。它现在运行得很好。 我希望在每一列中不仅按月份,而且在第1列中添加相应的年份,而不是“1”,在第2列中添加“2015年1月”、“2015年2月”,等等

另外,作为第一行,我如何将相应列的总和分组,以获得此值

             Jan-2015   Feb-2015   Mar-2015 
 Total           1000       1600     ...
 Customer1        100        800
 Customer2        900        600
 Customer3          0        200
我怎样才能做到这一点?我可以有一个PHP的总行,但在选择它将节省我很多时间

这是我最初的选择

SELECT
 Customers,
 sum(if(month(Date) = 1, Total_Deposits, 0))  AS Jan,
 sum(if(month(Date) = 2, Total_Deposits, 0))  AS Feb,
 sum(if(month(Date) = 3, Total_Deposits, 0))  AS Mar,
 sum(if(month(Date) = 4, Total_Deposits, 0))  AS Apr,
 sum(if(month(Date) = 5, Total_Deposits, 0))  AS May,
 sum(if(month(Date) = 6, Total_Deposits, 0))  AS Jun,
 sum(if(month(Date) = 7, Total_Deposits, 0))  AS Jul,
 sum(if(month(Date) = 8, Total_Deposits, 0))  AS Aug,
 sum(if(month(Date) = 9, Total_Deposits, 0))  AS Sep,
 sum(if(month(Date) = 10, Total_Deposits, 0)) AS Oct,
 sum(if(month(Date) = 11, Total_Deposits, 0)) AS Nov,
 sum(if(month(Date) = 12, Total_Deposits, 0)) AS `Dec`
FROM Online_customer_activity_v2
where Date BETWEEN '2015-01-01' AND '2015-12-31'
Group by Customers
ORDER by sum(`Online_customer_activity_v2`.`Total_Deposits`) DESC
LIMIT 20

提前感谢大家的提示

您需要的是数据透视表。看看这里,有很多关于它的问题得到了回答。例如,这是一个在DBA论坛上写得很好的答案:谢谢jose!我来看看这个!