SQL 名为承包商工作的员工

SQL employees working for contractors

您好,我有一个数据库,我需要回答一个问题,是否某些员工为多个承包商工作。我相信所有这些信息都在一个 table.

可能涉及的其他table

按员工分组,select 仅对拥有多个记录的员工分组

select e.emp_no, e.emp_fname, e.emp_lname
from cont_employee e
join contract c on e.emp_no = c.emp_no
where c.is_active = 1
group by e.emp_no, e.emp_fname, e.emp_lname
having count(distinct c.contractor_no) > 1

以上查询在 varchar 列上使用 group by 并使用 distinct 。 你可以试试row_number。 像这样,

SELECT * FROM
(
select e.emp_no, e.emp_fname, e.emp_lname
,ROW_NUMBER()OVER(PARTITION BY emp_no 
ORDER BY contractor_no) ROWNUM
from cont_employee e
join contract c on e.emp_no = c.emp_no
where c.is_active = 1
)T4
WHERE ROWNUM>1