2017-05-30 86 views
0

我每年都会在每年4年的时间里进行一次年度报告。在报告中显示已有的年份选项将被报告。例如选择2013-2016,所以在报告中从2013年,2014年,2015年和2016年 有关详细信息显示数据我有表象下面这样:在列上获得总和

+-----------------+--------------+-------------+-------------+ 
| id_jenis_perjal | jenis_perjal | id_tahun | tahun  | 
+-----------------+--------------+-------------+-------------+ 
|  7  | RPPJ   | 1   | 2013  | 
|  7  | RPPJ   | 1   | 2013  | 
|  7  | RPPJ   | 2   | 2014  | 
|  7  | RPPJ   | 3   | 2015  | 
|  7  | RPPJ   | 4   | 2016  | 
|  8  | Rambu  | 1   | 2013  | 
|  8  | Rambu  | 2   | 2014  | 
|  8  | Rambu  | 2   | 2014  | 
|  8  | Rambu  | 3   | 2015  | 
|  8  | Rambu  | 4   | 2016  | 
|  8  | Rambu  | 4   | 2016  | 
|  8  | Rambu  | 4   | 2016  | 
+-----------------+--------------+-------------+-------------+ 

但显示的报告我不得不修改该表是这样

+-----------------+------+------+------+------+ 
| jenis_perjal | 2013 | 2014 | 2015 | 2016 | 
+-----------------+------+------+------+------+ 
|  RPPJ  | 2 | 1 | 1 | 1 | 
|  Rambu  | 1 | 2 | 1 | 3 | 
+-----------------+------+------+------+------+ 
+0

搜索'groupby'&'count'在下面的mysql –

+0

而不是scaisEdge的回答,考虑处理应用程序代码中的数据显示问题(在本例中为php) – Strawberry

+0

这被称为数据透视表,并且已经在这里多次询问和回答。重复的主题描述了在MySQL中的静态(预先知道的列)和动态(列在动态确定)。请注意,在应用程序代码中执行此转换可能更有效,而不是在mysql中 - 正如@Strawberry也指出的那样。 – Shadow

回答

1

您coulduse总和和组根据情况时

select jenis_perjal 
     , sum(case when tahum = 2013 then id_tahun end) as 2013 
     , sum(case when tahum = 2014 then id_tahun end) as 2014 
     , sum(case when tahum = 2015 then id_tahun end) as 2015 
     , sum(case when tahum = 2016 then id_tahun end) as 2016 
    from my_table 
    group by jenis_perjal