Выбрать отличное из отличного
У меня есть две таблицы, одна имеет цели сотрудников, а другая список сотрудников. Я должен сопоставить одно с другим. Кажется, это легко сделать. но в таблице сотрудников сотрудники могут быть введены более одного раза с несколькими способами написания их имен. Как я могу выбрать только одно имя для каждого идентификатора, на самом деле не имеет значения, какое я выберу. это код, который я использовал:
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
Как я могу включить этого парня Дона Шеппарда в список только один раз?
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