首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

主表和明细表有关问题,要实现如下功能

2012-02-16 
主表和明细表问题,要实现如下功能:主表:姓名张三李四王五。。。。明细表:每次考试成绩现在要实现如下:姓名最高

主表和明细表问题,要实现如下功能:
主表:
姓名
张三
李四
王五
。。。。
明细表:
每次考试成绩

现在要实现如下:
姓名     最高成绩

要求:取每个人的最高成绩,并select出来,如果某人没有考试纪录,则考试成绩为空

[解决办法]
把表的结构贴出来
猜一个
select 主表.姓名,a.科目,a.成绩 from 明细表 a inner join 主表 on a.姓名id=主表.姓名id
where not exists(select 1 from 明细表 where 姓名id=a.姓名id and 科目=.a科目 and 成绩> a.成绩 )
[解决办法]
我如果没猜错,阁下莫非也在学SQL,而且用的数据库是XSCJ,表有xs,xs_kc,kc三张表吧~呵呵~~这个好象是道习题,不过我都有点忘了~
凭我记忆力吧~
select xs_kc.学号,max(成绩) as 最高成绩 from xs
inner join xs_kc on xs.学号=xs_kc.学号
group by xs_kc.学号
没有成绩的同学既然没有成绩就没必要显示出来~你还可以用明细参数 cube 或者rollup

[解决办法]
To wojila(阳阳) 同學:
別人要顯示就給人家顯示啦,小改一下,left join
select xs_kc.学号,isnull(max(成绩), 0) as 最高成绩 from xs
left join xs_kc on xs.学号=xs_kc.学号
group by xs_kc.学号
没有成绩的同学既然没有成绩就没必要显示出来~你还可以用明细参数 cube 或者rollup
[解决办法]
select name,max(score)
from tb
group by name

热点排行