的Oracle SQL子查询
问题描述:
显示员工last_name
,salary
和谁的工作无论是在IT
或MARKETING
部门,赚取比收入最低的人多在ACCOUNTING
部门job
。按字母顺序排序输出。的Oracle SQL子查询
我的回答:
select
last_name, salary, job_id
from
employees
where
salary > (select min(salary)
from employees
where department_id = (select department id
from departments
where department_name like'IT'
or like 'Marketing'));
答
不清楚自己想要什么,但它听起来像这样。根据需要在选择查询中添加其他列。
http://sqlfiddle.com/#!9/cfb31c/5/0
select e.last_name,e.salary,e.department_id from
employee e inner join department d
on e.department_id=d.department_id
where d.department_name in ('IT','MARKETING')
and e.salary > (select min(e1.salary) from employee e1
inner join department d1
where e1.department_id=d1.department_id
and d1.department_name = 'ACCOUNTING')
order by e.last_name
更新
相同的语句,重新格式化。
另外除去inner
关键字和固定on
子句,因此SQL是厂商中立的,即工作在MySQL,MS SQL,甲骨文和PostgreSQL,...
select e.last_name, e.salary, e.department_id
from employee e
join department d on d.department_id = e.department_id
where d.department_name in ('IT','MARKETING')
and e.salary > (select min(e1.salary)
from employee e1
join department d1 on d1.department_id = e1.department_id
where d1.department_name = 'ACCOUNTING')
order by e.last_name
试样台?数据库的细节和版本?请尝试在http://sqlfiddle.com中创建表格 – Utsav
问题是什么? –