回 帖 发 新 帖 刷新版面

主题:where 的条件居然要大于另外一个查询,怎么写啊

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个回复)

沙发

select * from people
where wage>(select max(wage) from people where pname='赵明华')

板凳

为什么要加max(wage)呢??这个人工资不是只有1个吗?

3 楼

是为了防止有同名字的人。
我在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 楼

非常感谢,请问在哪里下载sql sever2000

5 楼

http://www.52z.com/soft/3249.html

6 楼

怎么xp professional  装不了sql server的企业版的服务器端啊?????

7 楼

呵呵,当然了。
最好还是Win2000 Server,搞开发的经典操作系统。

8 楼

select * from people peoplex
where wage>(select max(wage) from people peopley   where peoplex.pno=peopley.pno and pname='赵明华')

9 楼

sorry 上面的弄错了,select * from people peoplex
where wage>(select max(wage) from people peopley where pname='赵明华')

10 楼

9楼跟1楼一样的嘛
就是多了个别名

我来回复

您尚未登录,请登录后再回复。点此登录或注册