我有一个名为COMPANY_DETAILS的表,共有5列
ID NAME REVENUE_YEAR TOTAL_REVENUE TOTAL_ASSET 100 ABC CORP 2015 50000 30000 100 ABC CORP 2016 60000 40000 200 XYZ CORP 2015 85000 60000 200 XYZ CORP 2016 75000 55000
如何通过SQL查询获取下表模式?
ID NAME REVENUE_YEAR15 TOTAL_REVENUE15 TOTAL_ASSET15 REVENUE_YEAR16 TOTAL_REVENUE16 TOTAL_ASSET16 100 ABC CORP 2015 50000 30000 2016 60000 40000 200 XYZ CORP 2015 85000 60000 2016 75000 55000
请帮助我。我正在使用Oracle 11g。
答案 0 :(得分:0)
试试这个。
select ID, NAME, 2015 REVENUE_YEAR15 ,
SUM ( CASE WHEN REVENUE_YEAR = 2015 THEN TOTAL_REVENUE
ELSE 0 END) TOTAL_REVENUE15,
SUM ( CASE WHEN REVENUE_YEAR = 2015 THEN TOTAL_ASSET
ELSE 0 END) TOTAL_REVENUE15,
2016 REVENUE_YEAR16 ,
SUM ( CASE WHEN REVENUE_YEAR = 2016 THEN TOTAL_REVENUE
ELSE 0 END) TOTAL_REVENUE16,
SUM ( CASE WHEN REVENUE_YEAR = 2016 THEN TOTAL_ASSET
ELSE 0 END) TOTAL_REVENUE16
FROM COMPANY_DETAILS GROUP BY ID,NAME;