create table aa (studentid nvarchar(8),teacherID nvarchar(8),MarkString nvarchar(32),评教所用标准 varchar(8),评教所用体系编码 varchar(20))
insert into aa select 
N'0001',       N'01',       N'ABCDEDDDCCCDEE',     N'S_T_1',N'0001' union all select
N'0002',       N'01',       N'ABCDEDDDCCCDEE',     N'S_T_1',N'0001' union all select
N'0003',       N'01',       N'ABCDEDDDCCCDEE',     N'S_T_1',N'0001' union all select
N'0004',       N'01',       N'ABCDCDEDCCCDEE',     N'S_T_1',N'0001' union all select
N'0001',       N'02',       N'ABCDECDEDCCDEE',     N'S_T_1',N'0001' union all select
N'0002',       N'02',       N'ABCDEDCDEDCDEE',     N'S_T_1',N'0001' union all select
N'0003',       N'02',       N'ACDEDDDDCCCDEE',     N'S_T_1',N'0001' union all select
N'0004',       N'02',       N'ABCCDEDDCCCDEE',     N'S_T_1',N'0001' union all select
N'0005',       N'02',       N'ABCDEDDDCCCDED',     N'S_T_1',N'0001'create table bb (评教所用项目编码 nvarchar(8),项目序号 int,项目内容 varchar(300))
insert into bb select 
N'00010001',                1,  N'教学方法'             union all select
N'00010002',                2,  N'教学态度'            union all select
N'00010003',                3,  N'教学内容'           create table cc (评教所用子项编码 nvarchar(30),子项序号 int,子项权重 decimal(38,2))
insert into cc select 
N'000100010001',                1,            1   union all select
N'000100010002',                2,            2   union all select
N'000100010003',                3,            2.5 union all select
N'000100020001',                4,            3   union all select
N'000100020002',                5,            4   union all select
N'000100020003',                6,            5   union all select
N'000100020004',                7,            6   union all select
N'000100030001',                8,            7这样创建三个表,其中aa是一个打分结果表,里面有对各位老师的打分成绩,而bb,cc是平角标准定义的表,三表关联关系在编码里,评教所用体系编码、评教所用项目编码、评教所用子项编码一个是一个的字串,现在想得到关于项目的平均分和子项的平均分,即得到如下结果
teacherid 教学方法    教学态度  教学内容      
01       1.366666667   1.625    2.800000
02 1.306666667    1.74     2.520000teacherid 单项1         单项2           单项3             单项4          单项5          单项6            单项7             单项8
01 1.000000 1.600000 1.500000 1.200000 1.200000 2.000000 2.100000 2.800000
02 1.000000 1.520000 1.400000 1.200000 1.120000 2.000000 2.640000 2.520000该如何写存储过程或函数?还望高手多多出招相助啊!

解决方案 »

  1.   


    上面文字重写(避免错别字的误意)
    这样创建三个表,其中aa是一个打分结果表,里面有对各位老师的打分成绩,而bb,cc是评价标准定义的表,三表关联关系在编码里,评教所用体系编码、评教所用项目编码、评教所用子项编码一个是一个的子串,现在想得到关于项目的平均分和子项的平均分,即得到如下结果:
    问题补充说明:
    子项的平均分:由ABCDEDDDCCCDED等打分结果串(A,B,C,D,E分别代表1.0,0.8,0.6,0.4,0.2分)和子项权重加权求得,按教师号teacherid求每个老师各单项的平均分项目的平均分:由子项号找每个项目的包含的子项数(如教学方法有三个子项),然后把子项的平均分相加后除以子项数,得各个教师在各项目上的平均分。问题很麻烦,也很难,所以还麻烦各位大虾帮帮忙!不胜感激!