Вы можете получить ожидаемый результат после группировки по дате.право?
Попробуй.
SELECT [date],left(convert(varchar(10),DATEADD(second, utc, '19700101 00:00:00'),108),5) as [time], FunctionKey,TB_USER_CUSTOMINFO.sFieldValue8 as EMPLOYEEID
FROM (
SELECT MMDDYYYY AS [date], nUserID, MIN(nDateTime) as utc , 'F1' AS FunctionKey
FROM (
SELECT convert(varchar(10),DATEADD(second, dbo.TB_EVENT_LOG.nDateTime, '19700101 00:00:00'),103) AS MMDDYYYY
, nUserID
, nDateTime
FROM dbo.TB_EVENT_LOG
WHERE nDateTime > datediff(second, '19700101 00:00:00', DATEADD(DAY, -4, getdate()))
and nDateTime < datediff(second, '19700101 00:00:00', getdate())
and dbo.TB_EVENT_LOG.[nReaderIdn] in(539577044) ) DATE_ADDED
GROUP BY MMDDYYYY, nUserID
UNION ALL
SELECT MMDDYYYY AS [date], nUserID, MAX(nDateTime) as utc , 'F2' AS FunctionKey
FROM (
SELECT convert(varchar(10),DATEADD(second, dbo.TB_EVENT_LOG.nDateTime, '19700101 00:00:00'),103) AS MMDDYYYY
, nUserID
, nDateTime
FROM dbo.TB_EVENT_LOG
WHERE nDateTime > datediff(second, '19700101 00:00:00', DATEADD(DAY, -4, getdate()))
and nDateTime < datediff(second, '19700101 00:00:00', getdate())
and dbo.TB_EVENT_LOG.[nReaderIdn] in(539577051) ) DATE_ADDED
GROUP BY MMDDYYYY, nUserID ) TA_DATA
INNER JOIN dbo.TB_USER ON TA_DATA.nUserID = dbo.TB_USER.sUserID
INNER JOIN dbo.TB_USER_CUSTOMINFO ON dbo.TB_USER.nUserIdn = dbo.TB_USER_CUSTOMINFO.nUserIdn