У меня есть список записей, представленных с помощью AlarmID, System, State и Raised ON.MS Access 2010, как рассчитать время между двумя записями - идентичный идентификатор, разное время
Одно событие представлено двумя записями, одним и тем же сигналом тревоги, сначала с состоянием «Вкл.», Вторым с «Состояние выключено» и временем ответа.
Это мой запрос:
SELECT *
FROM [Alarmi_On-Off]
WHERE [Alarmi_On-Off].[Alarm ID] IN (SELECT [Alarmi_On-Off].[Alarm ID]
FROM [Alarmi_On-Off]
GROUP BY [Alarmi_On-Off].[Alarm ID]
HAVING COUNT([Alarmi_On-Off].[Alarm ID]) > 1);
и результат:
+---------+---------+-------+------------------+
| AlarmID | System | State | Raised On |
+---------+---------+-------+------------------+
| 1001 | System1 | On | 16.08.2016 14:23 |
| 1001 | System1 | Off | 16.08.2016 16:17 |
| 1002 | System2 | On | 27.06.2016 12:14 |
| 1002 | System2 | Off | 27.06.2016 12:24 |
| 1002 | System2 | On | 14.07.2016 03:37 |
| 1002 | System2 | Off | 14.07.2016 03:38 |
+---------+---------+-------+------------------+
Я хочу, чтобы создать запрос, который вычисляет разницу во времени между включением и состояние Off для каждой системы, имея в виду чтобы исключить все системы с менее чем двумя событиями (в приведенном выше примере исключить AlarmID 1001), что я пытался использовать с «COUNT».
В этом запросе вместо двух записей я бы одна запись с системой и расчетное время.
Любая помощь приветствуется.
Я в конечном итоге с декартовым произведением времени начала и окончания, если есть более чем одна пара в AlarmId как в Access и SQL Сервер. – Comintern
Огромное спасибо всем, я попробую на следующей неделе, когда вернусь в свой офис. – Vedran