2013-03-20 2 views
0

Я пытаюсь отобразить сотрудников, которые составляют не менее 25% от того, что делает их руководитель. До сих пор у меня есть код подзапросов, которые могут проявить себя контролеры, но я не уверен, как «захватить» зарплаты Руководитель:Сравнение зарплаты супервайзера

SELECT TOP (100) PERCENT firstname + ' ' + lastname  AS Employee, 
         id, 
         jobtitle       AS [Job Title], 
         Str(Round(salary/12, 2), 12, 2) AS [Monthly Salary] 
FROM employeetable 
WHERE (id IN (SELECT supervisor 
       FROM employeetable 
       WHERE (supervisor IS NOT NULL))) 
ORDER BY lastname, 
      firstname 
+0

Является ли диспетчер полевым работником руководителя или поле «да/нет»? –

+0

Какая система баз данных и какая версия? –

+0

SQL 2012 и поле супервизора содержат идентификатор супервизора, но супервизоры перечислены в качестве обычных сотрудников в одной таблице. – 2013-03-20 22:46:33

ответ

1

- Во-первых, найти сотрудников и руководителей

select emp.id,emp.Salary,Sup.SuperVisor,Sup.Salary 
from employeetable emp 
join employeetable Sup on emp.supervisor=Sup.id 

Теперь добавьте статью, где

where emp.Salary >= .25 * Sup.Salary 

устранить людей, которые контролеры

and emp.id not in (select distinct supervisor from employeetable) 
+0

Уверен, что у его стола есть эти поля. –

+0

Моя проблема заключается в том, что супервизоры перечислены в качестве обычных сотрудников в одной таблице. Единственный способ сказать, что они являются супервизорами, заключается в том, что их идентификатор указан под переменной супервизора других сотрудников. – 2013-03-20 22:42:07

+0

Итак, вы говорите, если человек является руководителем, вы не хотите сравнивать их со своим руководителем? – Sparky