读书人

求算法怎么将纵向的数据表变成横向?

发布时间: 2012-01-22 22:38:43 作者: rapoo

求算法,如何将纵向的数据表变成横向??急,在线
数据表A: 列为FormID,FieldName,FieldDate,一个FormID下有多个FielName
如:
FormID FieldName FieldDate
1 编号 2
1 发起人 张三
1 发起时间 2007-1-12
1 内容 你好
数据表B:列为FormID,CreateDate,CreateName

现在想要一个视图或存储过程将AB表根据FormID拉成横向显示,如
FormID Code Name Date Content
1 2 张三 2007-1-12 你好
2 3 里司 2007-1-13 我好

请问如何表达???
谢谢


[解决办法]
确定只有 5 column?

select FormID, sum(decode(FieldName, 编号, FieldDate, null)) Code,
sum(decode(FieldName, 发起人, FieldDate, null)) Name,
sum(decode(FieldName, 发起时间, FieldDate, null)) Date,
sum(decode(FieldName, 内容, FieldDate, null)) Content
from A
group by FormID
[解决办法]
select FormID, sum(decode(FieldName, 编号, FieldDate, null)) Code,
sum(decode(FieldName, 发起人, FieldDate, null)) Name,
sum(decode(FieldName, 发起时间, FieldDate, null)) Date,
sum(decode(FieldName, 内容, FieldDate, null)) Content
from A
group by FormID;

多列的话,按照格式自行添加即可

读书人网 >oracle

热点推荐