-------------------------------------------------------------------------
比如我有一个字典表 T_Dic,表内有两列:ID,DicVal,该表存有两个字典,分别是
年级字典:
1 一年级
2 二年级
3 三年级
4 四年级
5 五年级
6 六年级优秀等级字典:
7 特优
8 优秀
9 一般
10 差
11 留校观察
另外有一个学生表,T_Pupil,表内有四列:ID,姓名,性别,年级,优秀等级,
该表中年级和优秀等级是字典中的DicVal
--------------------------------------------------------------------
我想做出以下查询,该如何做???
--------------------------------------------------------------------
年级 特优 优秀 一般 差 留校观察
--------------------------------------------------------------------
1 一年级 30 60 92 0 0
2 二年级 12 35 86 2 1
3 三年级 20 50 57 15 2
4 四年级 11 26 93 6 2
5 五年级 16 22 91 11 1
6 六年级 11 25 102 6 4
--------------------------------------------------------------------
我想做出以上查询,该如何做???
--------------------------------------------------------------------
比如我有一个字典表 T_Dic,表内有两列:ID,DicVal,该表存有两个字典,分别是
年级字典:
1 一年级
2 二年级
3 三年级
4 四年级
5 五年级
6 六年级优秀等级字典:
7 特优
8 优秀
9 一般
10 差
11 留校观察
另外有一个学生表,T_Pupil,表内有四列:ID,姓名,性别,年级,优秀等级,
该表中年级和优秀等级是字典中的DicVal
--------------------------------------------------------------------
我想做出以下查询,该如何做???
--------------------------------------------------------------------
年级 特优 优秀 一般 差 留校观察
--------------------------------------------------------------------
1 一年级 30 60 92 0 0
2 二年级 12 35 86 2 1
3 三年级 20 50 57 15 2
4 四年级 11 26 93 6 2
5 五年级 16 22 91 11 1
6 六年级 11 25 102 6 4
--------------------------------------------------------------------
我想做出以上查询,该如何做???
--------------------------------------------------------------------
t2.dicval,
sum(decode(tb.优秀等级,7, tb.cnt)) 特优,
sum(decode(tb.优秀等级,8, tb.cnt)) 优秀,
sum(decode(tb.优秀等级,9, tb.cnt)) 一般,
sum(decode(tb.优秀等级,10, tb.cnt)) 差,
sum(decode(tb.优秀等级,11, tb.cnt)) 留校观察
from
(select t.年级, t.优秀等级, count(1) cnt from t_pupil t group by t.年级, t.优秀等级 ) tb
left join
t_dic t2 on t2.id=tb.年级
group by
t2.dicval;