У меня есть простая таблица, в которой записываются люди, синхронизирующие и синхронизирующие так.Группа по набору значений (Check-in or Check-out)
Id | EmployeeNumber | InOutId | InOutDateTime
-----------------------------------------------------
1 | 505 | IN | 2015-03-24 08:32:42:000
1 | 506 | IN | 2015-03-24 08:35:47:000
1 | 507 | IN | 2015-03-24 08:46:12:000
1 | 505 | OUT | 2015-03-24 16:59:00:000
1 | 506 | OUT | 2015-03-24 17:05:00:000
Я хочу показать общее количество людей в настоящее время IN и тех, кто в настоящее время находится. Другими словами: - Total IN означает те, у которых нет соответствующего OUT для данного дня. - Total OUT означает те, у которых есть IN и OUT для данного дня.
Итак, основываясь на моем столе выше, я хочу, чтобы получить следующие результаты:
TotalCurrentlyIn | TotalCurrentlyOut
-----------------------------------------
1 | 2
Это то, что я до сих пор:
DECLARE @d date;
set @d = cast('2015-03-24 15:02:42.000' as date)
select EmployeeNumber, InOutId, InOutDateTime from MyAttendance
where
InOutDateTime >= DATEADD(day, DATEDIFF(day, 0, @d), 0)
and InOutDateTime < DATEADD(day, DATEDIFF(day, 0, @d) +1, 0)
order by
EmployeeNumber, InOutId
Мне нужно, чтобы иметь возможность подвести и группа - любые идеи?
Тег dbms used. (Не похоже на ANSI SQL ...) – jarlh