首页 > Oracle将多行数据转换成一行数据的问题,谢谢

Oracle将多行数据转换成一行数据的问题,谢谢

ID 收费站 流量 日期 类型
1 收费站1号 20 6-20 进口
2 收费站1号 30 6-20 出口
3 收费站2号 40 6-20 进口
4 收费站2号 50 6-20 出口
5 收费站1号 20 6-21 进口
6 收费站1号 30 6-21 出口
7 收费站2号 40 6-21 进口
8 收费站2号 50 6-21 出口

要将上面的表数据显示成如下格式

ID 日期 收费站1号进口流量 收费站1号出口流量 收费站2号进口流量 收费站2号出口流量
1 6月20日 20 30 40 50
2 6月21日 20 30 40 50

谢谢


这是个典型的行转列的问题

select rownum  as id, t.*
from (
    select 
      日期,
      sum(decode(收费站||类型, '收费站1号进口', 流量, 0)) as 收费站1号进口流量,
      sum(decode(收费站||类型, '收费站1号出口', 流量, 0)) as 收费站1号出口流量,
      sum(decode(收费站||类型, '收费站2号进口', 流量, 0)) as 收费站2号进口流量,
      sum(decode(收费站||类型, '收费站1号出口', 流量, 0)) as 收费站2号口流量
    from table_name
    group by 日期
) t
【热门文章】
【热门文章】