powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Срочно нужен запрос с расчетом. Возможно ли? Пожалуйста, помогите!
4 сообщений из 4, страница 1 из 1
Срочно нужен запрос с расчетом. Возможно ли? Пожалуйста, помогите!
    #32363818
andryas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Беда привела на форум. Раньше протокол велся в dbase, посчет перебором.
Все просто, но долго и немодно. Поставили задачу - всё на MySQL!
Имеется таблица следующей структуры:

login char(15)
action tinyint(1)
time timestamp(14)

В поле login записывается логин пользователей, в поле action событие (вход/выход 1 или 0 соответственно), limestamp - когда оно произошло :)
Задача: подсчитать общее время работы конкретного пользователя.
(Общая сумма длительности всех сеансов). В случае входа без последующего выхода (несколько входов подряд) учитывать только последний (за которым выход). Возможно ли такое на диалекте MySQL или на SQL вообще?
Болшущее спасибо за ответ!
...
Рейтинг: 0 / 0
Срочно нужен запрос с расчетом. Возможно ли? Пожалуйста, помогите!
    #32363836
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В принципе MySQL очень слаб в подобных вещах. А вот если эту модельку математически представить как то иначе, решение думаю будет...

Щас посижу подумаю!

mahoune
...
Рейтинг: 0 / 0
Срочно нужен запрос с расчетом. Возможно ли? Пожалуйста, помогите!
    #32363852
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пока только преблезительно через временную таблицу.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
CREATE TABLE Conn_Log(
  login AS char( 15 ),
  action AS tinyint( 1 ),
  time AS timestamp( 14 )
);

CREATE TEMPORARRY TABLE T1(
  login AS char( 15 ),
  action AS tinyint( 1 ),
  stime AS timestamp( 14 ),
  etime AStimestamp( 14 )
);

INSERT INTO T1
SELECT
a.id, a.slogin, a.iaction, a.dtime,
min(b.dtime) AS b_dtimeFROM
Conn_Log a
  LEFT JOIN Conn_Log b
    ON a.slogin = b.slogin AND (NOT a.iaction = b.iaction) AND a.dtime < b.dtime
WHERE
a.iaction= 1 
GROUP BY a.id, a.slogin, a.iaction, a.dtime


Уже спать хотца - остальное сам!
...
Рейтинг: 0 / 0
Срочно нужен запрос с расчетом. Возможно ли? Пожалуйста, помогите!
    #32363854
andryas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо! Хоть как-то выкручусь :) Буду пробовать!
А нельзя ли без временной таблички? Завтра :)
Спокойной ночи!
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Срочно нужен запрос с расчетом. Возможно ли? Пожалуйста, помогите!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]