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