Size: a a a

2020 October 28

V

Vova in MySQL
Вячеслав Синельников
обратите внимание на скролл справа данных много
у вас два поля на логин, два на логоф и PC admin одна строка, первоначальное условие было другим
источник

ВС

Вячеслав Синельников... in MySQL
из этой же таблицы формирую даные для вот такого графика все нормально
источник

V

Vova in MySQL
Вячеслав Синельников
из этой же таблицы формирую даные для вот такого графика все нормально
поставьте точно задачу, невозможно решить задачу, которую не задавали
источник

ВС

Вячеслав Синельников... in MySQL
Вячеслав Синельников
CREATE TABLE events (
 timeevent datetime NOT NULL DEFAULT current_timestamp(),
 adlogon varchar(250) NOT NULL DEFAULT 'Неизвестный',
 adpc varchar(250) NOT NULL DEFAULT 'Неизвестно',
 event enum('logon','logoff') NOT NULL,
 PRIMARY KEY (timeevent),
 KEY state (event),
 FULLTEXT KEY adlogon (adlogon)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
вот из такой структуры надо вычленить сумму всех промежутков вход-выход , и сумму промежутков выход-вход... группировка по adlogin,adpc в указанном диапазоне временного промежутка (например одни сутки)
источник

ВС

Вячеслав Синельников... in MySQL
таблицу можно рандомно заполнить путем уникальный логин уникальный ПК  время события признак события (вход или выход)
источник

IZ

Ilia Zviagin in MySQL
Вячеслав Синельников
парни подскажите как прально слепить:
select a,b,c from table 1
union
select a,b,d from table1

на выходе хочу табличку a,b,c,d (a одинаковые и b одинаковые значения)
select a,b,c, null as d from table 1
union all
select a,b, null as c,d from table1
источник

V

Vova in MySQL
Вячеслав Синельников
вот из такой структуры надо вычленить сумму всех промежутков вход-выход , и сумму промежутков выход-вход... группировка по adlogin,adpc в указанном диапазоне временного промежутка (например одни сутки)
так на скринах совсем другая структура
источник

V

Vova in MySQL
там четыре поля против двух
источник

ВС

Вячеслав Синельников... in MySQL
Ilia Zviagin
select a,b,c, null as d from table 1
union all
select a,b, null as c,d from table1
всеравно делит гад...
источник

IZ

Ilia Zviagin in MySQL
Вячеслав Синельников
всеравно делит гад...
Что делит?
источник

ВС

Вячеслав Синельников... in MySQL
Ilia Zviagin
Что делит?
короче не объеденяет записи в одну табличку
источник

ВС

Вячеслав Синельников... in MySQL
NULL должны заполнится из другого селекта в юнион
источник

BS

Bogdan Stochanskyy in MySQL
привет ) на базе убунты криво встало обновление mysql-server
снес все, базы просто копирнул в другую папку. Мускул переустановил, вернул папки обратно в /var/lib/mysql
бд видно, но при попытке обратится к табле, возвращало ошибку access denied. Вылечил chmod -R mysql:mysql
Теперь ошибка во всех таблах всех баз примерно выглядит так
SQL Error [1146] [42S02]: Table 'blog.users' doesn't exist
файлы на месте, проверял
Куда копать?
источник

ВС

Вячеслав Синельников... in MySQL
Ilia Zviagin
Что делит?
SELECT * FROM
(
SELECT
adlogon,
adpc,
timeevent AS timelogonstart,
(SELECT IFNULL (MIN(events.timeevent),NOW()) FROM events WHERE adlogon=a.adlogon AND adpc=a.adpc AND timelogonstart < timeevent AND event='logoff' LIMIT 1) AS timelogonend,
SEC_TO_TIME(SUM(TO_SECONDS((SELECT IFNULL (MIN(events.timeevent),NOW()) FROM events WHERE adlogon=a.adlogon AND adpc=a.adpc AND timelogonstart < timeevent AND event='logoff' LIMIT 1)) - TO_SECONDS(timeevent))) AS timework
FROM events AS a
WHERE a.event = 'logon' AND (timeevent BETWEEN '2020-10-28 00:00:00' AND '2020-10-28 23:59:00')
GROUP BY a.adlogon,a.adpc
ORDER BY a.adlogon DESC
) AS tablea
LEFT JOIN
(
SELECT
adlogon,
adpc,
timeevent AS timelogoffstart,
(SELECT IFNULL (MIN(events.timeevent),NOW()) FROM events WHERE adlogon=b.adlogon AND adpc=b.adpc AND (timelogoffstart < timeevent) AND event='logon' LIMIT 1) AS timelogoffend,
SEC_TO_TIME((TO_SECONDS((SELECT IFNULL (MIN(events.timeevent),NOW()) FROM events WHERE adlogon=b.adlogon AND adpc=b.adpc AND (TO_SECONDS(timelogoffstart) < TO_SECONDS(timeevent)) AND event='logon' LIMIT 1)) - TO_SECONDS(timeevent))) AS timenotwork
FROM events AS b
WHERE event = 'logoff' AND (timeevent BETWEEN '2020-10-28 00:00:00' AND '2020-10-28 23:59:00')
GROUP BY b.adlogon,b.adpc
) AS tableb
ON
(tablea.adlogon = tableb.adlogon) AND (tablea.adpc = tableb.adpc)

ВЫШЕЛ ИЗ СИТУАЦИИ правда дублекаты полей adlogon adpc )))
источник
2020 October 29

DE

Denis Efremov in MySQL
Вячеслав Синельников
CREATE TABLE events (
 timeevent datetime NOT NULL DEFAULT current_timestamp(),
 adlogon varchar(250) NOT NULL DEFAULT 'Неизвестный',
 adpc varchar(250) NOT NULL DEFAULT 'Неизвестно',
 event enum('logon','logoff') NOT NULL,
 PRIMARY KEY (timeevent),
 KEY state (event),
 FULLTEXT KEY adlogon (adlogon)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
Как это DATETIME у тебя PRIMARY KEY??? То есть одновременно нельзя двум юзерам зайти?
источник

DE

Denis Efremov in MySQL
В принципе структура косяченная, надо переделывать
источник

DE

Denis Efremov in MySQL
Вячеслав Синельников
SELECT * FROM
(
SELECT
adlogon,
adpc,
timeevent AS timelogonstart,
(SELECT IFNULL (MIN(events.timeevent),NOW()) FROM events WHERE adlogon=a.adlogon AND adpc=a.adpc AND timelogonstart < timeevent AND event='logoff' LIMIT 1) AS timelogonend,
SEC_TO_TIME(SUM(TO_SECONDS((SELECT IFNULL (MIN(events.timeevent),NOW()) FROM events WHERE adlogon=a.adlogon AND adpc=a.adpc AND timelogonstart < timeevent AND event='logoff' LIMIT 1)) - TO_SECONDS(timeevent))) AS timework
FROM events AS a
WHERE a.event = 'logon' AND (timeevent BETWEEN '2020-10-28 00:00:00' AND '2020-10-28 23:59:00')
GROUP BY a.adlogon,a.adpc
ORDER BY a.adlogon DESC
) AS tablea
LEFT JOIN
(
SELECT
adlogon,
adpc,
timeevent AS timelogoffstart,
(SELECT IFNULL (MIN(events.timeevent),NOW()) FROM events WHERE adlogon=b.adlogon AND adpc=b.adpc AND (timelogoffstart < timeevent) AND event='logon' LIMIT 1) AS timelogoffend,
SEC_TO_TIME((TO_SECONDS((SELECT IFNULL (MIN(events.timeevent),NOW()) FROM events WHERE adlogon=b.adlogon AND adpc=b.adpc AND (TO_SECONDS(timelogoffstart) < TO_SECONDS(timeevent)) AND event='logon' LIMIT 1)) - TO_SECONDS(timeevent))) AS timenotwork
FROM events AS b
WHERE event = 'logoff' AND (timeevent BETWEEN '2020-10-28 00:00:00' AND '2020-10-28 23:59:00')
GROUP BY b.adlogon,b.adpc
) AS tableb
ON
(tablea.adlogon = tableb.adlogon) AND (tablea.adpc = tableb.adpc)

ВЫШЕЛ ИЗ СИТУАЦИИ правда дублекаты полей adlogon adpc )))
А что в полях adlogon и adpc хранится?
источник

DE

Denis Efremov in MySQL
Вячеслав Синельников
SELECT * FROM
(
SELECT
adlogon,
adpc,
timeevent AS timelogonstart,
(SELECT IFNULL (MIN(events.timeevent),NOW()) FROM events WHERE adlogon=a.adlogon AND adpc=a.adpc AND timelogonstart < timeevent AND event='logoff' LIMIT 1) AS timelogonend,
SEC_TO_TIME(SUM(TO_SECONDS((SELECT IFNULL (MIN(events.timeevent),NOW()) FROM events WHERE adlogon=a.adlogon AND adpc=a.adpc AND timelogonstart < timeevent AND event='logoff' LIMIT 1)) - TO_SECONDS(timeevent))) AS timework
FROM events AS a
WHERE a.event = 'logon' AND (timeevent BETWEEN '2020-10-28 00:00:00' AND '2020-10-28 23:59:00')
GROUP BY a.adlogon,a.adpc
ORDER BY a.adlogon DESC
) AS tablea
LEFT JOIN
(
SELECT
adlogon,
adpc,
timeevent AS timelogoffstart,
(SELECT IFNULL (MIN(events.timeevent),NOW()) FROM events WHERE adlogon=b.adlogon AND adpc=b.adpc AND (timelogoffstart < timeevent) AND event='logon' LIMIT 1) AS timelogoffend,
SEC_TO_TIME((TO_SECONDS((SELECT IFNULL (MIN(events.timeevent),NOW()) FROM events WHERE adlogon=b.adlogon AND adpc=b.adpc AND (TO_SECONDS(timelogoffstart) < TO_SECONDS(timeevent)) AND event='logon' LIMIT 1)) - TO_SECONDS(timeevent))) AS timenotwork
FROM events AS b
WHERE event = 'logoff' AND (timeevent BETWEEN '2020-10-28 00:00:00' AND '2020-10-28 23:59:00')
GROUP BY b.adlogon,b.adpc
) AS tableb
ON
(tablea.adlogon = tableb.adlogon) AND (tablea.adpc = tableb.adpc)

ВЫШЕЛ ИЗ СИТУАЦИИ правда дублекаты полей adlogon adpc )))
И куда это входы и выходы? Надеюсь не на сайт?
источник

ВС

Вячеслав Синельников... in MySQL
Denis Efremov
А что в полях adlogon и adpc хранится?
уникальный логин и имя пк)
источник

ВС

Вячеслав Синельников... in MySQL
Denis Efremov
И куда это входы и выходы? Надеюсь не на сайт?
в компы
источник