2017-07-07 66 views
0

我在DB2数据库中有一组记录,我需要提供一份报告,其中为用户完成的业务所有字段都提供给所有用户。为所有用户总结了所有不同的MGD_TYPE。我怎样才能使用SQL来做到这一点?DB2 SQL聚合

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

可能的复制到https://stackoverflow.com/questions/44784095/convert-rows-into-column-in-db2 我建议在发布 – MichaelTiefenbacher

回答

1

这是一个基本的PIVOT查询:

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

之前搜索相似的问题和有用的答案非常感谢 – BreenDeen