问题是这样的 有三个表 A.B.C a表是学生表,c表式检查项目表 ,b表是结果表
A 表结构 aID Name 。。
01 tom
02 jack
03 james
04 kevin
......
C 表结构 itemID itemName
01 身高
02 体重
03 视力
04 味觉
05 嗅觉
06 心肺
07 心电图
.........
B 表结构 bID aID itemID itemResult
1 01 01 合格
2 01 02 不合格
3 01 03 不合格
4 02 01 不合格
5 02 02 合格
6 02 03 不合格
7 03 01 合格
8 03 03 不合格
9 03 04 合格
10 03 05 合格
11 04 02 不合格
12 04 04 合格
..........
期望的结果是 aID 身高 体重 视力 味觉 嗅觉 心肺 心电图
01 合格 不合格 不合格 - - - -
。其中 列要根据所有的检查项目来动态取得 .有点难度
A 表结构 aID Name 。。
01 tom
02 jack
03 james
04 kevin
......
C 表结构 itemID itemName
01 身高
02 体重
03 视力
04 味觉
05 嗅觉
06 心肺
07 心电图
.........
B 表结构 bID aID itemID itemResult
1 01 01 合格
2 01 02 不合格
3 01 03 不合格
4 02 01 不合格
5 02 02 合格
6 02 03 不合格
7 03 01 合格
8 03 03 不合格
9 03 04 合格
10 03 05 合格
11 04 02 不合格
12 04 04 合格
..........
期望的结果是 aID 身高 体重 视力 味觉 嗅觉 心肺 心电图
01 合格 不合格 不合格 - - - -
。其中 列要根据所有的检查项目来动态取得 .有点难度
解决方案 »
- 使用PL/SQL创建数据表时出现缺失右括号和标识符无效的错误,怎么解决?
- 下面这里面红色的字体都是干什么用的啊????
- ROW_NUMBER() 造成的诡异事件。。
- jdbc连接数据库出错,请教高手
- 一道SQL面试题。
- Oracle插入记录问题——插入数量出错
- 手里有一个 sql 文件,里面的内容都是创建表、序列、插入数据的 sql 语句,不知道怎么在oracle里去执行?谢谢
- 怎样把'11年'转换为'十一年'
- 急问Ora12560错误!!!
- 看有关资料oracle支持级联更新,请问PL/SQL语句怎么写?
- PDM 如何查看所有表的字段名,字段类型和长度,如何导入oracle
- 问一个有关 delete 的问题
http://topic.csdn.net/u/20100109/13/6a10c168-f190-4766-b838-adbf03c4ac7b.html?64786
这个最好啊
decode(c.itemid,'02',b.itemresult) 体重, decode(c.itemid,'03',b.itemresult) 视力,
decode(c.itemid,'04',b.itemresult) 味觉, decode(c.itemid,'05',b.itemresult) 嗅觉
from c,b where c.itemid=b.itemid
如果懒得写有大牛写的存储过程http://topic.csdn.net/u/20100109/13/6a10c168-f190-4766-b838-adbf03c4ac7b.html?64786
CREATE OR REPLACE PROCEDURE row2col(o OUT SYS_REFCURSOR) IS
sqlstr VARCHAR2(4000) := '';
BEGIN
FOR cc IN (SELECT itemID, itemName FROM c) LOOP
sqlstr := sqlstr || 'max(decode(itemID,''' || cc.itemid ||
''',b.itemresult)) as "' || cc.itemname || '",';
END LOOP;
sqlstr := 'select b.aid,' || rtrim(sqlstr,',') || ' from b group by b.aid';
OPEN o FOR sqlstr;
END row2col;
decode(c.itemid,'02',b.itemresult) 体重, decode(c.itemid,'03',b.itemresult) 视力,
decode(c.itemid,'04',b.itemresult) 味觉, decode(c.itemid,'05',b.itemresult) 嗅觉
from c,b where c.itemid=b.itemid