2016-02-01 2 views

ответ

0

вы не были предоставить образец данных. Поэтому я опробовал ваше требование с приведенным вами снимком выходной таблицы.

create table #val(id int, name varchar(40), checktime datetime) 


insert into #val values (1,'a', '2015-01-01 09:30:00.000') 

insert into #val values (2,'b', '2015-01-01 10:30:00.000') 

insert into #val values (1,'a', '2015-01-01 10:30:00.000') 

insert into #val values (2,'b', '2015-01-01 11:30:00.000') 


select id, name, FORMAT(CAST(checkin AS DATETIME),'hh:mm tt') AS StartTime, FORMAT(CAST(checkout AS DATETIME),'hh:mm tt') AS Endtime 
from 
(
select id, name,min(checktime) checkin, max(checktime) checkout 
from 
#val 
group by id,name )a 

(Примечание:. Я использую SQL-Server 2012 Она имеет функцию форматирования для преобразования DateTime в AM и PM)

+0

он очень благодарен за ваш ценный ответ. @bmsqldev –

+0

, если он предоставит вам решение, пожалуйста, примите его как ответ – bmsqldev

+0

Что делать, если есть несколько проверок и чатов? –

1

я развивающееся программное обеспечение посещаемости, тайминги пробивные как проверить и проверить будет хранить в одном столбце тип данных datetime вдоль идентификатора пользователя. Мне нужно отделить его от времени проверки в столбце и проверить в другом столбце идентификатор пользователя. SELECT CHECKINOUT.USERID,Ent_Staff.StaffName,CHECKINOUT.CHECKTIME FROM Ent_Staff INNER JOIN USERINFO ON USERINFO.BADGENUMBER=Ent_Staff.Bio_Id INNER JOIN Mas_Shift ON Mas_Shift.Shift_Id=Ent_Staff.Shift_Id INNER JOIN CHECKINOUT ON CHECKINOUT.USERID=USERINFO.USERID WHERE checkinout.CHECKTIME>= '01/27/2016' AND checkinout.CHECKTIME < '01/28/2016' AND checkinout.USERID IN (9,15) ORDER BY checkinout.CHECKTIME[i had posted the table view also][1]