Я хочу создать SQL-запрос для SQLite3 DB .
В моей таблице приведены следующие данные образца
7/1/2011 8:02 LOGIN JOE
7/1/2011 8:15 LOGIN CAROL
7/1/2011 8:15 LOGIN JOE
7/1/2011 8:35 LOGIN SANDY
7/1/2011 13:15 LOGOFF SANDY
7/1/2011 16:15 LOGIN SANDY
7/1/2011 18:12 LOGOFF CAROL
7/1/2011 21:09 LOGOFF TED
7/1/2011 21:19 LOGIN TED
7/1/2011 22:10 LOGOFF JOE
7/1/2011 23:40 LOGOFF SANDY
7/2/2011 9:00 LOGIN JOE
7/3/2011 10:00 LOGIN JOE
7/3/2011 20:00 LOGOFF SANDY
в основном я хочу получить только первую запись LOGIN для каждой даты и последнюю запись LOGOFF для той же даты (если доступно)
Итак, я хочу, чтобы запрос выдал
7/1/2011 8:02 LOGIN JOE
7/1/2011 8:15 LOGIN CAROL
7/1/2011 8:35 LOGIN SANDY
7/1/2011 18:12 LOGOFF CAROL
7/1/2011 21:09 LOGOFF TED
7/1/2011 21:19 LOGIN TED
7/1/2011 22:10 LOGOFF JOE
7/1/2011 23:40 LOGOFF SANDY
7/2/2011 9:00 LOGIN JOE
7/3/2011 10:00 LOGIN JOE
7/3/2011 20:00 LOGOFF SANDY
Как видите, нас интересует первый вход в систему и последний выход для пользователя.
Все поля являются отдельными полями, которые хранятся как VARCHAR ()
ИСКЛЮЧИТЬ ДАТУ И ВРЕМЯ
Дата сохраняется как ДАТА
Время сохраняется как ВРЕМЯ
Ниже приведены имена полей и то, что они представляют.
tddate - date
tdtime - time
tdtype - LOGIN/LOGOFF
tdusername - username
Не все входы в систему имеют соответствующий выход из системы, потому что человек может отключиться от сети без фактического выхода из системы.
Вот запрос, который я пытался использовать
select tddate,
case tdtype
when 'LOGIN' then Min(tdtime)
when 'LOGOFF' then Max(tdtime)
end as tdtype from TimeData
WHERE tdusername LIKE "JOE"
я получаю 0 строк данных