sql语句:如何将横表导成竖表?
象这样的:(假设表名为table)
日期 规格 入 出 存
200601 a1 1 2 5
200601 a2 2 3 2
200601 a3 3 4 2
200601 a4 4 5 2要变成
日期 项目 a1 a2 a3 a4
200601 入 1 2 3 4
200601 出 2 3 4 5
200601 存 5 2 2 2 将如何写这个sql语句呢?
象这样的:(假设表名为table)
日期 规格 入 出 存
200601 a1 1 2 5
200601 a2 2 3 2
200601 a3 3 4 2
200601 a4 4 5 2要变成
日期 项目 a1 a2 a3 a4
200601 入 1 2 3 4
200601 出 2 3 4 5
200601 存 5 2 2 2 将如何写这个sql语句呢?
,max(decode(规格,'a2',入)) as a2
,max(decode(规格,'a3',入)) as a3
,max(decode(规格,'a4',入)) as a4
from test
group by 日期
union all
select 日期,'出' as 项目,max(decode(规格,'a1',出))
,max(decode(规格,'a2',出))
,max(decode(规格,'a3',出))
,max(decode(规格,'a4',出))
from test
group by 日期
union all
select 日期,'存' 项目,max(decode(规格,'a1',存))
,max(decode(规格,'a2',存))
,max(decode(规格,'a3',存))
,max(decode(规格,'a4',存))
from test
group by 日期