У меня есть 3 таблицы: Employee
, Department
и employeeProject
.
Соотношение между employee
и employeeproject
одно-ко-многим. Соотношение между employee
и department
много-к-одному.
Я хочу написать запрос для выбора 10 сотрудников, которые работали в проектах 3 и 4. Запрос должен возвращать сотрудников различных отделов, если это возможно.
Запрос ниже вида работ. Единственная проблема заключается в том, что отношения между employee
и employeeproject
являются однозначными, поэтому он может возвращать один и тот же номер сотрудника несколько раз.
Я не могу использовать distinct
, потому что все поля в предложении order by
должны использоваться в select
при использовании distinct
.
select top 10 empid from employee e
inner join department d on d.depId=e.depid
inner join employeeProject p on p.empid=e.empid
where p.projectID in (3,4)
order by row_number() over(partition by e.depId order by e.empid)