三个表之间查找到用户名成绩课程,存在多个用户名对应成绩,课程,进行oracle的行转列

三个表之间查找到用户名成绩课程,存在多个用户名对应成绩,课程,进行oracle的行转列 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

进行行转列

(0)
上一篇 2022年3月22日
下一篇 2022年3月22日

相关推荐