我有两个表一个有员工目标,另一个有员工列表。我必须相互匹配。似乎很容易做到。但是在员工表中,员工可以多次输入,并且有多种拼写方式。我怎样才能为每个ID选择一个名称,我选择哪一个并不重要。 这是我使用的代码:
select distinct (etar.EmplKey ), emp.EmplFullName
FROM EmployeeTarget etar
inner join DimEmployee emp on emp.emplkey = etar.emplkey
inner join dimbranch br on br.BranchId = etar.BranchId
where etar.BranchId = 8
这是我得到的结果:
EmplKey EmplFullName
100260 Ida Patton
101488 Don Sheppard
101488 Donald Sheppard
101489 Teresa Coverdale
103121 Harjinder Aujla
我怎么能只让Don Sheppard那个人上市一次呢?
答案 0 :(得分:1)
最简单的方法是进行聚合:
select etar.EmplKey, min(emp.EmplFullName)
FROM EmployeeTarget etar
inner join DimEmployee emp on emp.emplkey = etar.emplkey
inner join dimbranch br on br.BranchId = etar.BranchId
where etar.BranchId = 8
group by etar.EmplKey