2015-10-18 3 views
-1

Показать сотрудник last_name, salary и job, которые работают либо в IT или MARKETING отдела и заработать больше, чем худший оплачиваемого человека в ACCOUNTING отделе. Сортировка результата по имени в алфавитном порядке.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')); 
+1

образец? db подробности и версия? Попробуйте создать таблицы в http://sqlfiddle.com – Utsav

+0

И в чем проблема? –

ответ

1

Не совсем уверен, что вы хотите, но это звучит что-то вроде этого. Добавьте другие столбцы в выбранный запрос, как хотите.

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 

Update

То же утверждение, переформатировать.
удалены также inner ключевое слово и фиксированный on пункт, так что SQL является поставщиком нейтральным, то есть работает на MySQL, MS SQL, Oracle, 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 
+0

Казалось бы, MySQL (ваша скрипка) очень снисходителен, потому что во втором 'inner join' нет предложения' on'. Форматирование заявления также может использовать некоторую работу. – Andreas

+0

'on' clause не требуется, если условие соединения указано в предложении' where'. Это одно и то же. – Utsav

+0

Но да, любые входы при дальнейшем форматировании будут хорошими. Я всегда готов учиться. – Utsav

Смежные вопросы