请教一个SQL查询语句怎么写

来源:百度知道 编辑:UC知道 时间:2024/05/02 19:29:40
有三个表
Emp(eid,ename,age,salary)
Works(eid,did,pct_time)
Dept(did,budget,managerid)

一个员工可以在不同的部门工作
求一个查询,找出员工的姓名,他的工资超出所有他所在部门的budget
EMP 是员工表 Works 是关系表,其中pct_time是员工在这个部门工作的百分数(例80,说明员工80%的时间在这个部门工作),一个员工可以在不同部门工作. Dept是部门表,其中 budget就是预算资金的意思.

现在找出员工的工资超过所有他所在部门的预算资金的员工的姓名.
注意是所有的部门

不太懂你的意思。
员工表Emp与Dept应该是多对多关系对吧;Works表用来描述对应关系;
对吧?
budget是什么?
各个键,尽量描述清楚;

select *from Dept where did=(select did from Works where eid=(select eid from Emp where ename='姓名'))
就是一个子查询

试下这个:
select budget,ename from Dept,Works,Emp Where Emp.eid=Works.eid and Works.did=Dept.did and budget>"部门工资"
还有一点.
你是为了找出那个员工,还是为了找出那个员工的工资.学是两者都要显示出来.最好说清楚一点.

select ename from Dept,Works,Emp Where Emp.eid=Works.eid and Works.did=Dept.did and salary>budget