Добавлено: 18 ноя 2004, 18:04
а какое тогда условие join-a?
форум программистов
https://www.developing.ru/
Код: Выделить всё
SELECT
e1.card,
e1.event_time,
e2.event_time
FROM events AS e1, events AS e2
WHERE
e1.card=e2.card
and e1.status =1
and e2.status =2
and e1.event_time < e2.event_time
and e2.event_time not in (select max (event_time) from events e4 where e4.card = e2.card)
union all
SELECT
e1.card,
e1.event_time,
e2.event_time
FROM events AS e1, events AS e2
WHERE
e1.card=e2.card
and e1.status =1
and e2.status =2
and e1.event_time < e2.event_time
and e1.event_time not in (select min (event_time) from events e3 where e3.card = e1.card)
Код: Выделить всё
SELECT e1.card, e1.event_time, min(e2.event_time)
FROM
(
(SELECT * FROM events WHERE status=1) as e1 LEFT JOIN
(SELECT * FROM events WHERE status=2) as e2 ON e1.card=e2.card
)
WHERE e1.event_time < e2.event_time
GROUP BY e1.card, e1.event_time
ORDER BY e1.card, e1.event_time
Код: Выделить всё
SELECT card, (sum(iif(status=2, event_time, 0))-sum(iif(status=1, event_time, 0))) as worktime
FROM events
GROUP BY card