Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Запрос: анализ log-таблицы  [new]
Cyr
Guest
Есть таблица с записями:
1. ДатаВремя КонецСеанса
2. ДатаВремя НачалоСеанса
3. ДатаВремя КонецСеанса
4. ДатаВремя НачалоСеанса
...
N ДатаВремя КонецСеанса
N+1 ДатаВремя НачалоСеанса

Нужно из неё сделать запрос с полями:
Сеанс ДатаВремяНачалаСеанса ДатаВремяКонцаСеанса ПродолжительностьСеанса

Вопрос: Как?
6 янв 05, 19:36    [1229522]     Ответить | Цитировать Сообщить модератору
 Re: Запрос: анализ log-таблицы  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16839
Интересно, какой сеанс кончился в 1-ой строчке?

Естественее было бы

...
N Начало Сеанса
N Конец Сеанса
N+1 Начало Сеанса
N+1 Конец Сеанса
...

Для ответа на ваш ворос недостаточно данных. Пример не помешал бы. ДатаВремя для двух соседних сточек одинаковые ?
6 янв 05, 20:19    [1229554]     Ответить | Цитировать Сообщить модератору
 Re: Запрос: анализ log-таблицы  [new]
Cyr
Guest
Порядок строк изменить невозможно.
В первой строчке закончился последний сеанс, во второй строчке он начался.
В третьей строчке закончился предпоследний сеанс, в четвёртой строчке он начался.
И т.д. Т.е. две строчки (конец-начало) на один сеанс.
В принципе, номер сеанса не важен.
Дата и время двух соседних строчек неодинаковы.

Весь пример - это импорт подключений/отключений RemoteAcces из журнала событий системы (EventLog)
6 янв 05, 21:45    [1229618]     Ответить | Цитировать Сообщить модератору
 Re: Запрос: анализ log-таблицы  [new]
Green2
Member

Откуда: skype: green2x2
Сообщений: 13748
Так ведь RemoteAcces в событии конца сеанса пишет время сеанса.
Я взял заключительные события.
Если мы об одном и том же RemoteAcces говорим то внимательно посмотри структуру базы данных.
Кроме того, там должен быть идентификатор сесии.
--
Картинка с другого сайта.

Posted via ActualForum NNTP Server 1.1

6 янв 05, 22:29    [1229663]     Ответить | Цитировать Сообщить модератору
 Re: Запрос: анализ log-таблицы  [new]
lobodava
Member

Откуда: Москва
Сообщений: 386
Как правильно заметил тов. Программист-Любитель, для ответа на ваш вопрос недостаточно данных.

Как понять в какой строке ДатаВремя КонецСеанса и в какой ДатаВремя НачалоСеанса?

Вот если предположить, что по четным N сеанс начинается, а по N-1 заканчивается, тогда можно попробовать что-нибудь типа:

SELECT A.НачалоСеанса, B.КонецСеанса, (B.КонецСеанса - A.НачалоСеанса) AS ПродолжительностьСеанса
FROM tblLog AS A INNER JOIN tblLog AS B ON A.НомерЗаписи = В.НомерЗаписи + 1
WHERE (A.НомерЗаписи Mod 2) = 0;

over.
6 янв 05, 22:57    [1229681]     Ответить | Цитировать Сообщить модератору
 Re: Запрос: анализ log-таблицы  [new]
Green2
Member

Откуда: skype: green2x2
Сообщений: 13748
RemoteAcces в составе Win 2000 ведет таблицы в формате IAS
а RemoteAcces в составе Win 2003 может прямо писать логи в базу данных.

У него в таблице логов около 30 полей. Там есть необходимая информация.

Cyr ты говоришь об RRAS?
--
Картинка с другого сайта.

Posted via ActualForum NNTP Server 1.1

7 янв 05, 00:15    [1229735]     Ответить | Цитировать Сообщить модератору
 Re: Запрос: анализ log-таблицы  [new]
Cyr
Guest
Green2
RemoteAcces в составе Win 2000 ведет таблицы в формате IAS
Cyr ты говоришь об RRAS?
Я говорю про Dial-up соединения в WinXP Prof
lobodava
Как понять в какой строке ДатаВремя КонецСеанса и в какой ДатаВремя НачалоСеанса?

В принципе в событии есть поле EventCode (20159-отключение, 20158 -подключение)
Вот если предположить, что по четным N сеанс начинается, а по N-1 заканчивается

Видимо, так.
Я подправил ваш код так:
SELECT A.TimeWritten, B.TimeWritten, (B.TimeWritten - A.TimeWritten) AS ПродолжительностьСеанса
FROM EventTable  AS A INNER Join EventTable AS B ON A.Код = В.Код + 1
WHERE (A.Код  Mod 2) = 0
Ругается: "ошибка синтаксиса в операции JOIN"
7 янв 05, 11:20    [1229991]     Ответить | Цитировать Сообщить модератору
 Re: Запрос: анализ log-таблицы  [new]
Green2
Member

Откуда: skype: green2x2
Сообщений: 13748
> Вот если предположить, что по четным N сеанс начинается, а по N-1 заканчивается

Это не так, у меня сервер удаленного доступа уже несколько лет работает, число событий подключения не равно числу событий отключения

Вот статистика моего сервера:
[csv]
Packet-Type, Acct-Status-Type, cnt,примечание
-----------, ----------------,-----------,
1, NULL, 25065,Access-Request (запрос доступа)
2, NULL, 21899,Access-Accept (разрешение доступа)
3, NULL, 3166,Access-Reject (отказ в доступе)
4, 1, 21837,Событие подключения
4, 2, 21896,Событие отключения
4, 7, 108,
4, 8, 24,
[csv]
--
Картинка с другого сайта.

Posted via ActualForum NNTP Server 1.1

7 янв 05, 13:58    [1230170]     Ответить | Цитировать Сообщить модератору
 Re: Запрос: анализ log-таблицы  [new]
Green2
Member

Откуда: skype: green2x2
Сообщений: 13748
Поправлюсь такая статистика.
Packet-Type Acct-Status-Type cntпримечание
1 NULL 25065Access-Request (запрос доступа)
2 NULL 21899Access-Accept (разрешение доступа)
3 NULL 3166Access-Reject (отказ в доступе)
4 1 21837Событие подключения
4 2 21896Событие отключения
4 7 108
4 8 24

Win 2003 гораздо проще все это делает.
--
Картинка с другого сайта.

Posted via ActualForum NNTP Server 1.1

7 янв 05, 14:00    [1230174]     Ответить | Цитировать Сообщить модератору
 Re: Запрос: анализ log-таблицы  [new]
lobodava
Member

Откуда: Москва
Сообщений: 386
Если предположить, что таблица имеет вид:

Kod EventCode TimeWritten
1 20159 13:50
2 20158 13:45
3 20159 13:30
4 20158 13:15
5 20159 13:10
6 20158 13:05
7 20159 13:01
8 20158 13:00

и что поле Kod имеет последовательные значения, то запрос будет выглядеть вот так:
SELECT A.TimeWritten AS TimeIn, B.TimeWritten AS TimeOut, B.TimeWritten-A.TimeWritten AS Duration
FROM EventTable AS A INNER JOIN EventTable AS B ON A.Kod = B.Kod + 1
WHERE A.EventCode=20158;

Проверил, работает. Прикрепил файл.

К сообщению приложен файл (db1.zip - 12Kb) cкачать
7 янв 05, 14:22    [1230196]     Ответить | Цитировать Сообщить модератору
 Re: Запрос: анализ log-таблицы  [new]
lobodava
Member

Откуда: Москва
Сообщений: 386
Green2
> Вот если предположить, что по четным N сеанс начинается, а по N-1 заканчивается

Это не так, у меня сервер удаленного доступа уже несколько лет работает, число событий подключения не равно числу событий отключения

Ну тогда действительно нужен какой-нибудь "идентификатор сесии", иначе привязаться некчему - где искать время отключения, зная лишь время подключения и то что времени отключения может и не быть?
7 янв 05, 14:31    [1230218]     Ответить | Цитировать Сообщить модератору
 Re: Запрос: анализ log-таблицы  [new]
Green2
Member

Откуда: skype: green2x2
Сообщений: 13748
2 lobodava
Не ожидал, оназывается событий отключения больше, чем событий подключения!
--
Картинка с другого сайта.

Posted via ActualForum NNTP Server 1.1

7 янв 05, 14:41    [1230227]     Ответить | Цитировать Сообщить модератору
 Re: Запрос: анализ log-таблицы  [new]
Cyr
Guest
[quot lobodava]Если предположить, что таблица имеет вид:
.....
[quot]
Именно так. Спасибо, всё работает.
7 янв 05, 17:44    [1230439]     Ответить | Цитировать Сообщить модератору
 Re: Запрос: анализ log-таблицы  [new]
Cyr
Guest
Green2
> Вот если предположить, что по четным N сеанс начинается, а по N-1 заканчивается

Это не так, у меня сервер удаленного доступа уже несколько лет работает, число событий подключения не равно числу событий отключения



У меня не сервер удалённого доступа, а клиент.
ОC Win XP Prof. Она в лог пишет два события: подключение и отключение.
А вот на работе стоит Win 2000 prof. Там настроены входящие подключения. Но в лог он вообще ничего не пишет, кроме ложных срабатываний.
7 янв 05, 17:49    [1230445]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить