手机访问 | 设为首页 | 加入收藏 | 网站地图

当前位置:电脑中国 > 数据库 > oracel >

三个表之间查找到用户名成绩课程,存在多个用户名对应成绩,课程

2017-04-01 10:48|来源:未知 |作者:dnzg |点击:
SELECT name ,
SUM(DECODE(C_NAME,'高数一',grade)) AS daxl ,
SUM(DECODE(C_NAME,'高数一',grade)) AS gaoshuyi ,
SUM(DECODE(C_NAME,'C语言',grade)) AS clun ,
SUM(DECODE(C_NAME,'数据结构与算法',grade)) AS shujujiegou ,
SUM(DECODE(C_NAME,'大学物理',grade)) AS daxuewuli
FROM
(SELECT T1.name,
T3.C_NAME,
T2.GRADE
FROM T_USER T1
INNER JOIN T_GRADE T2
ON T1.U_ID = T2.U_ID
INNER JOIN T_COURSE T3
ON T2.C_ID =T3.C_ID
WHERE T1.CLASSES ='物联网132'
AND T2.GRADE_TYPE=2
)
GROUP BY name

ORDER BY name;

表格式应该是

张三 高数一 88

张三 大外一 90

张三 C语言 66

这个类型转换成

姓名: 高数一 大外一 C语言

张三 88 90 66

进行行转列

(责任编辑:dnzg)
图片推荐
    友荐云推荐
网友评论