我正在使用adventureworks示例数据库。
我有一张员工的桌子,所有人都有一位经理。因此,在表employee中有一列ManagerID。
此外,在员工表中还有一个ContactID,其中包含该员工的姓名。
我想列出一份包含所有经理及其姓名的清单。我该怎么办呢?
该表看起来像
EmployeeID ContactID ManagerID
---------- --------- ---------
1 21 4
2 24 4
3 32 7
4 34 2
5 35 2
6 42 7
7 44 4
所以我需要一个managerID的DISTINCT列表,然后搜索每个managerID他们的appropreate ContactID。
所以: 员工1的经理是具有ContactID 34的员工4。 员工3的经理是具有ContactID 44的员工7。 员工4的经理是具有ContactID 24的员工2。
感谢。
答案 0 :(得分:2)
你可以加入表myTable
,并将manager_id与employee_id的匹配
select
t.employeeid as employee_id,
t.manager_id as manager_id,
t2.contact_id as manager_contact_id
from mytable t left outer join mytable t2 on t.managerid = t2.employeeid
答案 1 :(得分:-1)
SELECT ManagerID, EmployeeID, ConactID
FROM ´yourtable´
GROUP BY ManagerID
您可以获得分组数据。 如果您还希望列出管理员,则必须再次加入数据(自行加入)