2017-07-07 5 views
0

Ich habe Datensätze in einer DB2-Datenbank und muss einen Bericht erstellen, in dem alle von Benutzern ausgeführten Geschäftsfelder für alle Benutzer bereitgestellt werden. Alle verschiedenen MGD_TYPE wurden für alle Benutzer zusammengefasst. Wie kann ich das mit SQL machen?DB2 SQL-Aggregation

USER_ID   MGD_TYPE     MTHLY_AMT   EFF_DATE 
1222   FX      332.21    06/23/10 
3333   REAL_ESTATE    2221.03    06/23/10 
1222   MERGERS     1882.43    02/03/12 
3333   PORTFOLIO    721.44    01/22/15 


USER   FX_AMT   REAL_EST_AMT   MERGERS_AMT   PORTFOLIO_AMT 
1222   332.21   0.0     1882.43   0.0 
3333   0.0    2221.03     0.0    721.44 
+0

Mögliche Duplikat https://stackoverflow.com/questions/44784095/convert-rows-into-column-in-db2 Ich schlage Suche nach ähnlichen Fragen und nützlichen Antworten bevor du poste – MichaelTiefenbacher

Antwort

1

Dies ist eine grundlegende PIVOT Abfrage:

SELECT USER_ID, 
    SUM(CASE MGD_TYPE WHEN 'FX'   THEN MTHLY_AMT END) As FX_AMT, 
    SUM(CASE MGD_TYPE WHEN 'REAL_ESTATE' THEN MTHLY_AMT END) As REAL_EST_AMT, 
    SUM(CASE MGD_TYPE WHEN 'MERGERS'  THEN MTHLY_AMT END) As MERGERS_AMT, 
    SUM(CASE MGD_TYPE WHEN 'PORTFOLIO' THEN MTHLY_AMT END) As PORTFOLIO_AMT 
FROM table 
GROUP BY USER_ID 
+0

Vielen Dank – BreenDeen