Как получить единый вывод оператора множественного выбора при планировании задания sql

У меня есть таблица сотрудников, в которой фиксированы первые 4 поля employee ID, но сообщается, что они меняются в зависимости от местоположения. Мне нужно получить отчет, чтобы найти последнюю запись из этой таблицы для всех трех мест. Я пытаюсь запустить 3 оператора select, и при планировании задания вывод .csv file имеет пустые строки и some ------ lines. может кто-нибудь помочь, если я могу получить результат в одном файле без пробелов.

select top1 from Employee where ID like '42345%'  Orderby JoinedDate Desc
select top1 from Employee where ID like '42346%'  Orderby JoinedDate Desc
select top1 from Employee where ID like '42347%'  Orderby JoinedDate Desc

Загляните в UNION ALL

HoneyBadger 11.04.2018 13:10
0
1
40
1

Ответы 1

Кажется, вы пытаетесь написать что-то вроде этого:

select e.*
from ((select top 1 e.*
       from Employee e
       where ID like '42345%' 
       Orderby JoinedDate Desc
      ) union all
      (select top 1 e.*
       from Employee e
       where ID like '42346%' 
       Orderby JoinedDate Desc
      ) union all
      (select top 1 e.*
       from Employee e
       where ID like '42347%' 
       Orderby JoinedDate Desc
      ) union all
     ) e;

Возможно, более простой способ записать это - использовать row_number():

select e.*
from (select e.*,
             row_number() over (partition by left(id, 5) order by joineddate desc) as seqnum
      from employee e
      where id like '4234[567]%'
     ) e
where seqnum = 1;

Другие вопросы по теме