В следующей таблице мне нужно узнать дату входа в систему и продолжительность сеанса пользователя. Например, empid = 1 вошел в систему (typeid = 1) 01.01.2009 @ 3:20 и вышел из системы (typeid = 2) в тот же день в 3:25. Выход должен быть:
logged on, session length, sessionid
1/1/2009 3:20 5:00 014A3B2C-3874-4D84-A5B3-F234AA2AE30D
Каждый идентификатор сеанса уникален. Как мне создать такой запрос?
create table a (empid int, typeid int, created datetime, sessionid nvarchar(36))
insert into a(empid, typeid, created, sessionid)
values(1, 1, '01/01/2009 3:20:00', '014A3B2C-3874-4D84-A5B3-F234AA2AE30D')
insert into a(empid, typeid, created, sessionid)
values(1, 2, '01/01/2009 3:25:00', '014A3B2C-3874-4D84-A5B3-F234AA2AE30D')
insert into a(empid, typeid, created, sessionid)
values(2, 1, '01/09/2009 4:20:00', '014A3B2C-3874-4D84-A5B3-F234AA2AE30E')
insert into a(empid, typeid, created, sessionid)
values(3, 1, '01/10/2009 3:25:00', '014A3B2C-3874-4D84-A5B3-F234AA2AE30F')
insert into a(empid, typeid, created, sessionid)
values(2, 2, '01/09/2009 4:23:00', '014A3B2C-3874-4D84-A5B3-F234AA2AE30E')
insert into a(empid, typeid, created, sessionid)
values(3, 2, '01/10/2009 4:25:00', '014A3B2C-3874-4D84-A5B3-F234AA2AE30F')
select * from a
drop table a
- РЕДАКТИРОВАТЬ -
Есть несколько сценариев, которые я бы хотел отфильтровать. Например, для empid = 1 это может быть вместо этого:
insert into a(empid, typeid, created, sessionid)
values(1, 1, '01/01/2009 3:20:00', '014A3B2C-3874-4D84-A5B3-F234AA2AE30D')
insert into a(empid, typeid, created, sessionid)
values(1, 1, '01/01/2009 3:25:00', '014A3B2C-3874-4D84-A5B3-F234AA2AE30D')
Вышеуказанный empid не имеет совпадающего typeid = 2. Есть два typeid = 1.