Выбрать отличное из отличного

У меня есть две таблицы, одна имеет цели сотрудников, а другая список сотрудников. Я должен сопоставить одно с другим. Кажется, это легко сделать. но в таблице сотрудников сотрудники могут быть введены более одного раза с несколькими способами написания их имен. Как я могу выбрать только одно имя для каждого идентификатора, на самом деле не имеет значения, какое я выберу. это код, который я использовал:

     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
Другие вопросы по тегам