再问一题!
学生表:
STU_ID STU_NAME CLASS_ID
---------- ---------- ----------
A001 张山 06101
A002 李四 06101
B001 王五 06102
课程表:
LES_ID LES_NAME
---------- ----------
L001 语文
L002 数学
L003 英语
L004 物理
L005 化学
分数表:
STU_ID LES_ID STORE
---------- ---------- -----
A001 L001 90
A001 L002 80
B001 L001 85
A002 L001 70
A002 L002 60
想输出
姓名 语文(分数) 数学(分数) 英语(分数) 物理(分数) 化学(分数)
这样的表结构来,该怎么办呢?
问题点数:20、回复次数:2Top
1 楼boydgmx(授人以鱼不如授人以渔(baidu&google))回复于 2006-06-04 09:27:59 得分 20
涉及到动态生成字段的问题,用一条SQL我不会
不过有个笨办法:
SELECT STU_NAME,
SUM(L001) AS "语文(分数)",
SUM(L002) AS "数学(分数)",
SUM(L003) AS "英语(分数)",
SUM(L004) AS "物理(分数)",
SUM(L005) AS "化学(分数)"
FROM (
SELECT A.STU_NAME,DECODE(C.LES_ID,'L001',C.STORE,0) AS L001,
DECODE(C.LES_ID,'L002',C.STORE,0) AS L002,
DECODE(C.LES_ID,'L003',C.STORE,0) AS L003,
DECODE(C.LES_ID,'L004',C.STORE,0) AS L004,
DECODE(C.LES_ID,'L005',C.STORE,0) AS L005
FROM 学生表 A
INNER JOIN 分数表 C ON (A.STU_ID=C.STU_ID)
) GROUP BY STU_NAME
/
Top
2 楼Kyoryo()回复于 2006-06-04 19:58:11 得分 0
这个方法挺绝的!Top




