以下是我试图回答的提示:
显示该经理的最低薪员工的经理编号和薪水(仅限) - 适当标记。不包括经理不详的员工的工资。在这里排除任何组,最低工资低于1000美元。先列出最低工资。
以下是我的EMPLOYEES表:
create table EMPLOYEES
(EmpID char(4) unique Not null,
Ename varchar(10),
Job varchar(9),
MGR char(4),
Hiredate date,
Salary decimal(7,2),
Comm decimal(7,2),
DeptNo char(2) not null,
Primary key(EmpID),
Foreign key(DeptNo) REFERENCES DEPARTMENTS(DeptNo));
insert into EMPLOYEES values (7839,'King','President',null,'17-Nov-11',5000,null,10);
insert into EMPLOYEES values (7698,'Blake','Manager',7839,'01-May-11',2850,null,30);
insert into EMPLOYEES values (7782,'Clark','Manager',7839,'02-Jun-11',2450,null,10);
insert into EMPLOYEES values (7566,'Jones','Manager',7839,'02-Apr-11',2975,null,20);
insert into EMPLOYEES values (7654,'Martin','Salesman',7698,'28-Feb-12',1250,1400,30);
insert into EMPLOYEES values (7499,'Allen','Salesman',7698,'20-Feb-11',1600,300,30);
insert into EMPLOYEES values (7844,'Turner','Salesman',7698,'08-Sep-11',1500,0,30);
insert into EMPLOYEES values (7900,'James','Clerk',7698,'22-Feb-12',950,null,30);
insert into EMPLOYEES values (7521,'Ward','Salesman',7698,'22-Feb-12',1250,500,30);
insert into EMPLOYEES values (7902,'Ford','Analyst',7566,'03-Dec-11',3000,null,20);
insert into EMPLOYEES values (7369,'Smith','Clerk',7902,'17-Dec-10',800,null,20);
insert into EMPLOYEES values (7788,'Scott','Analyst',7566,'09-Dec-12',3000,null,20);
insert into EMPLOYEES values (7876,'Adams','Clerk',7788,'12-Jan-10',1100,null,20);
insert into EMPLOYEES values (7934,'Miller','Clerk',7782,'23-Jan-12',1300,null,10);
以下是我的疑问:
select empid, salary
from employees
where salary in
(select MIN(salary)
from employees
where empid in
(select empid
from EMPLOYEES
where JOB != 'manager'))
order by Salary asc;
结果只是经理以外的最低薪人士。我需要每位经理薪酬最低的工人,包括总统领导下的最低工资经理。
答案 0 :(得分:2)
select empid, salary
from employees
where salary in
(select MIN(salary)
from employees
where empid in
(select empid
from EMPLOYEES
where JOB != 'manager'
group by EmpID
)
and
JOB != 'manager' and MGR is not null
group by mgr
)
order by Salary asc;
答案 1 :(得分:0)
试试这个:
select MGR, MIN(salary)
from EMPLOYEES e
where Salary >= 1000 and MGR is not null
group by mgr
order by MIN(salary)
或者也许:
select MGR, MIN(salary)
from EMPLOYEES e
where MGR is not null
group by mgr
having min(salary) >= 1000
order by MIN(salary)
声明“在这里排除任何团体的最低工资低于1000美元”对我来说并不清楚。