2017-05-30 5 views
0

Ich versuche, einen Bericht pro Jahr zu machen, wo das Jahr ich alle 4 Jahre angeben. Im Bericht erscheint die bereits verfügbare Jahresoption, die gemeldet werden soll. Zum Beispiel Optionen 2013-2016, so im Bericht zeigt sie Daten von 2013, 2014, 2015 und 2016. Weitere Details habe ich die Tabelle wie folgt:erhalten Summe für Spalten Jahr

+-----------------+--------------+-------------+-------------+ 
| 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  | 
+-----------------+--------------+-------------+-------------+ 

Aber um den Bericht anzuzeigen Ich habe zu ändern der Tisch wie diese

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

Suche 'groupby' &' count' in mysql –

+0

Statt scaisEdge Antwort unten, Bedenken Sie die Handhabung der Datenanzeige im Anwendungscode (in diesem Fall php) – Strawberry

+0

Dies wird als Pivot-Tabelle bezeichnet und wurde hier SO mehrmals abgefragt und beantwortet. Das doppelte Thema beschreibt sowohl statische (im Voraus bekannte Spalten) als auch dynamische (Spalten werden im Handumdrehen bestimmt), die in mysql schwenken. Bitte beachten Sie, dass es effizienter sein kann, diese Umwandlung im Anwendungscode durchzuführen als in mysql - wie auch @Strawberry gezeigt hat. – Shadow

Antwort

1

Sie coulduse Summe und Gruppe auf Fall basiert, wenn

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 
Verwandte Themen