SQL请教 关于竖列变横列的问题再提

121111 2002-09-20 10:42:42
关于竖列变横列的问题再提
业务表A
Name code Data Type Primary Foreign
距离 距离 NUMBER FALSE TRUE
装机类型 装机类型 NUMBER FALSE TRUE
新装数量 新装数量 NUMBER FALSE FALSE

数据如下:
距离 装机类型 新装数量
1 1 10
1 2 4
1 3 5
2 1 2
2 2 1
3 1 3



其中距离字段有外键,它参照另一张值列表 B
Name code Data Type Primary Foreign
记录标志 记录标志 NUMBER TRUE FALSE
名称 名称 VARCHAR2(10) FALSE FALSE

数据如下:
记录标志 名称
1 区内
2 区外
3 本市
4 长途
......

其中装机类型字段有外键,它参照另一张值列表 C
Name code Data Type Primary Foreign
记录标志 记录标志 NUMBER TRUE FALSE
名称 名称 VARCHAR2(10) FALSE FALSE
数据如下:
记录标志 名称
1 DDN
2 FRN
3 PAC
.....


现在,我想把A 表的数据由竖列变横列,显示如下
B.记录标志 B.名称 装机类型1(DDN)新装数量 装机类型2(FRN)新装数量 装机类型3(PAC)新装数量 ....(列数不定,根据C表数据变化)
1 区内 10 4 5
2 区外 2 1 0
3 本市 3 0 0
4 长途 0 0 0


能不能用SQL写出来.
谢谢






...全文
195 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhoubf725 2002-09-24
  • 打赏
  • 举报
回复
呵呵
挺遗憾的
sum(decode())
group by 。。。
jiezhi 2002-09-20
  • 打赏
  • 举报
回复
行列不是可以随意转换的
black_snail 2002-09-20
  • 打赏
  • 举报
回复
Use Function or Procedure
csdnyork 2002-09-20
  • 打赏
  • 举报
回复
编个存储过程.
qiuyang_wang 2002-09-20
  • 打赏
  • 举报
回复
编写存储过程比较现实些,我就作了一个数据转换的工具,其主要思路是配置转换规则,根据这些转换规则动态生成存储过程实现数据转换,这样可以一劳永益,其不乐载。
可惜我编写的工具的版权不属我自己,不能发给你的,自己做吧。
anakine 2002-09-20
  • 打赏
  • 举报
回复
你是想出报表吧,我想可以建表把数据插进去的。

用动态SQL 语句建表, 字段个数依类型的记录数来定,向表里插数据的时候要考虑如果该距离该列装机类型没有装机数量时,你得比较,赋空值或是0,并且还要注意取数据的游标的指针的同步(装机类型定义一个cursor、类型--数量数据定义一个cursor)。

121111 2002-09-20
  • 打赏
  • 举报
回复
csdnyork(yyp),black_snail(●○)

在这个存储过程中创建新的表,是这样吗

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧