主题:where 的条件居然要大于另外一个查询,怎么写啊
zhangheng77
[专家分:5510] 发布于 2005-11-17 22:57:00
people(pno,pname,sex,job,wage,dptno)
其中:pno—职工号 pname---职工姓名 sex---性别
job---职业 wage-----工资 dptno----所在部门号
请分别写出下列查询要求的关系代数表达式和SQL语句
查询列出工资大于赵明华工资的所有职工的信息。
select * from people
where wage>(select wage from people where pname='赵明华')
不能这么写,怎么写啊
回复列表 (共11个回复)
沙发
chaoyun2004 [专家分:400] 发布于 2005-11-17 23:37:00
select * from people
where wage>(select max(wage) from people where pname='赵明华')
板凳
zhangheng77 [专家分:5510] 发布于 2005-11-18 14:07:00
为什么要加max(wage)呢??这个人工资不是只有1个吗?
3 楼
chaoyun2004 [专家分:400] 发布于 2005-11-18 17:53:00
是为了防止有同名字的人。
我在SQL Server2000中测试过可以,如下:
create table people(pno char(4) primary key,pname varchar(20),sex char(2),job varchar(10),wage int,dptno char(3))
insert into people values
('0001','赵明华,'男','工程师',4000,'001')
insert into people values
('0002','赵明','男','工程师',4050,'001')
insert into people values
('0003','李强','男','工程师',6000,'001')
select * from people where
wage >(select max(wage) from people where pname='赵明华')
/*结果
pno pname sex job wage dptno
--------------------------------------------------
0002 赵明 男 工程师 4050 001
0003 李强 男 工程师 6000 001
*/
4 楼
zhangheng77 [专家分:5510] 发布于 2005-11-18 18:41:00
非常感谢,请问在哪里下载sql sever2000
5 楼
chaoyun2004 [专家分:400] 发布于 2005-11-18 21:24:00
http://www.52z.com/soft/3249.html
6 楼
zhangheng77 [专家分:5510] 发布于 2005-11-18 21:29:00
怎么xp professional 装不了sql server的企业版的服务器端啊?????
7 楼
chaoyun2004 [专家分:400] 发布于 2005-11-18 21:55:00
呵呵,当然了。
最好还是Win2000 Server,搞开发的经典操作系统。
8 楼
rodin [专家分:180] 发布于 2005-11-20 11:46:00
select * from people peoplex
where wage>(select max(wage) from people peopley where peoplex.pno=peopley.pno and pname='赵明华')
9 楼
rodin [专家分:180] 发布于 2005-11-20 11:48:00
sorry 上面的弄错了,select * from people peoplex
where wage>(select max(wage) from people peopley where pname='赵明华')
10 楼
zhangheng77 [专家分:5510] 发布于 2005-11-20 21:00:00
9楼跟1楼一样的嘛
就是多了个别名
我来回复