在Colums//Mysql中获取月份和年份
我在Mysql中有以下Select,它使我能够按月列出每个客户的金额。它现在运行得很好。 我希望在每一列中不仅按月份,而且在第1列中添加相应的年份,而不是“1”,在第2列中添加“2015年1月”、“2015年2月”,等等 另外,作为第一行,我如何将相应列的总和分组,以获得此值在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
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!我来看看这个!