2

以下は、私が答えようとしているプロンプトです。

マネージャー番号と、そのマネージャーの最低賃金の従業員の給与 (のみ) を表示します - 適切なラベルを付けます。上司が不明な従業員の給与を除外します。最低給与が $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; 

結果はマネージャー以外の最低賃金者だけ。社長の下で最低賃金のマネージャーを含め、マネージャーごとに最低賃金の労働者が必要です。

4

2 に答える 2

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 未満のグループをここから除外する」という文は、私には明確ではありません。

于 2013-04-17T19:08:42.007 に答える