| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3176 人关注过本帖
标题:--6找出各系年龄最大的学生,显示其学号、姓名;有错,怎么改才正确,谢谢各 ...
只看楼主 加入收藏
jiushiwo
Rank: 1
等 级:新手上路
帖 子:170
专家分:0
注 册:2007-3-10
收藏
 问题点数:0 回复次数:3 
--6找出各系年龄最大的学生,显示其学号、姓名;有错,怎么改才正确,谢谢各位了

--6找出各系年龄最大的学生,显示其学号、姓名;
SELECT sno,sname
FROM S
WHERE sage=
(SELECT MAX(sage)
FROM S
WHERE sdept='CS'
)
UNION
SELECT sno,sname
FROM S
WHERE sage=
(SELECT MAX(sage)
FROM S
WHERE sdept='MA'
)
UNION
SELECT sno,sname
FROM S
WHERE sage=
(SELECT MAX(sage)
FROM S
WHERE sdept='IS'
);
用这种方法查询正确但是较烦琐,以下是我用另一种方法的查询但是结果有错误,大家帮忙改下,谢谢了
/*SELECT sno,sname
FROM S
WHERE sage=
(SELECT MAX(sage)
FROM S
WHERE sdept='CS' OR sdept='IS' OR sdept='MA' );*/结果有错

[此贴子已经被作者于2007-4-22 22:51:29编辑过]

搜索更多相关主题的帖子: 年龄最大 学号 各系 FROM SELECT 
2007-04-22 22:50
棉花糖ONE
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:2987
专家分:0
注 册:2006-7-13
收藏
得分:0 

你的第二个答案是找出cs,is,ma这三个系中年龄最大的,而开始那个是找出每个系中年龄最大的,第二个找出的记录数比第一个少,要是你的表总总就三个系的话,直接这样
select sno,sname from s group by sdept having sage=max(sage)


26403021 sql群 博客 blog./user15/81152/index.shtml
2007-04-22 23:37
Kendy123456
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:62
帖 子:2720
专家分:0
注 册:2007-1-3
收藏
得分:0 
select a.Sno, a.Sname from
(select * from s where sdept in ('MA','CS','IS')) a
join (select sno,Sdept from s group by sdept having sage=max(sage)) b
on a.Sno= b.sno and a.sdept =b.sdept

2007-04-23 10:00
huangkeng87
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2009-11-3
收藏
得分:0 
SELECT Sno, Sname
FROM S AS A
WHERE Sage =
 (SELECT MAX(Sage)
 FROM S AS B
 WHERE A.Sdept = B.Sdept);
2009-11-03 11:40
快速回复:--6找出各系年龄最大的学生,显示其学号、姓名;有错,怎么改才正确, ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021396 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved