Sql Goup по статусу - PullRequest
       7

Sql Goup по статусу

1 голос
/ 31 октября 2019

У меня есть запрос вроде этого

select U.Name, Edatetime,IOType from Mx_ACSEventTrn
left join Mx_UserMst U on Mx_ACSEventTrn.UsrRefcode=U.UserID
 where Edatetime between '2019-10-30 00:00:00' and '2019-10-30 23:59:59' 

мой результат

 Name                 date                     status
Husam Hajawi    2019-10-30 07:29:13.000         0
Marjune Deigo Pascua    2019-10-30 07:32:34.000 1

статус 0 означает в punch, а статус 1 означает punch.so я хочу получить такой результат:

мой результат

  Name                    In                        OUT                   
    Husam Hajawi           2019-10-30 07:29:13.000          
    Marjune Deigo Pascua    2019-10-30 07:32:34.000   2019-10-30 08:32:34.000

1 Ответ

1 голос
/ 31 октября 2019

Вы можете попробовать использовать условное агрегирование

select U.Name, 
       min(case when status=0 then Edatetime end) as in,
       max(case when status=1 then Edatetime end) as out
from Mx_ACSEventTrn
left join Mx_UserMst U on Mx_ACSEventTrn.UsrRefcode=U.UserID
where Edatetime between '2019-10-30 00:00:00' and '2019-10-30 23:59:59' 
group by U.Name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...