1.从[学生信息表]和[教师信息表]中查询同姓的教师和学生的姓名2、13. 查询[课程编号]为900013的学生学号、姓名、课程名称和分数,并计算出最高分、最低分和均分(以下做法是错误的, 总分,平均分都算不出来)
select 学生信息表.学号,学生信息表.姓名,名称,分数,SUM(分数) as 总分,AVG(分数) as 平均分,MIN(分数 as 最低分
from 教学成绩表,学生信息表,课程信息表
where 教学成绩表.学号=学生信息表.学号 and 教学成绩表.课程编号=课程信息表.编号 and 课程编号='900013'
group by 学生信息表.学号,学生信息表.姓名,名称,分数

解决方案 »

  1.   

    lz:基于你的问题的解答:1。select tb1.name,tb2.name from 学生信息表 tb1,教师信息表 tb2 where left(tb1.name,1)=left(tb2.name,1)
    1。对第一个问题解答的补充:看下你的2个表中是否存在复姓的情况,
    ---- select len('顾')   --先看下你的sql中,一个汉字占用几个字节,一般都是1
    select tb1.name,len(tb1.name) from 学生信息表 tb1
    select tb2.name,len(tb2.name) from 教师信息表 tb2
    如果有的话,你要加点东西。这个是复姓的情况。
    select tb1.name,tb2.name from 学生信息表 tb1,教师信息表 tb2 where left(tb1.name,2)=left(tb2.name,2)
    要是还有3个字的姓,那还要加东西的,你懂的。---------------
    2。select 学号,SUM(分数) as 总分,AVG(分数) as 平均分 into #test from 教学成绩表 group by 学号
    select 学生信息表.学号,学生信息表.姓名,#test.总分,#test.平均分 from 学生信息表,#test where 学生信息表.学号=#test.学号-----
    select 学号,课程名称,max(分数) as maxx into #a from 教学成绩表 group by 学号,课程名称
    select 学号,课程名称,min(分数) as minn into #b from 教学成绩表 group by 学号,课程名称
    select 学生信息表.学号,学生信息表.姓名,课程名,#a.maxx from 学生信息表,#a where 学生信息表.学号=教学成绩表.学号
    select 学生信息表.学号,学生信息表.姓名,课程名,#b.minn from 学生信息表,#b where 学生信息表.学号=教学成绩表.学号----
    你先看下行不,不行再发贴来。