Подсчет вхождений в диапазоне в доступе - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть таблица «03_DataSelection-Appended» с примером нескольких полей, показанным ниже:

AlarmID, AlarmTime, HourEarly, HourLate, NumAlarmsEarly

244, 10/7/19 1:25 PM, 7/7/19 12:25 PM, 7/7/19 14:25, 1

245, 7/7/19 13:39, 10/7/19 12:39 PM , 7/7/19 14:39, 2

246, 7/7/19 13:47, 10/7/19 12:47, 10/7/19 14:47, 3

247, 08.10.19 22:17, 10.08.19 21:17, 10.08.19 23:17, 1

248, 10 / 19.08.1917, 10.08.199, 17.08.198, 17.17, 2

249, 14.10.19, 9:24, 10/14 / 19: 8:24, 14.10.19, 10:24, 2

250, 14.10.19, 9:24, 14.10.19, 8:24, 10/14 / 19 10:24, 2

251, 14.10.19 9:25, 10.10.19 8:25, 14.10.19 10:25, 4

252, 14.10.19 9:25, 14.10.19 8:25, 14.10.19 10:25, 4

То, что я хотел бы сделать, это граф количество строк, имеющих значение AlarmTime между AlarmTime и HourEarly для Every AlarmTime и добавьте это значение в таблицу / запрос в виде дополнительное поле [NumAlarmsEarly]

Показание для первых нескольких показывается в поле выше [NumAlarmsEarly]

Я пробовал стандартное добавление AlarmTime дважды в Query, а затем второй «Count», но по какой-то причине это не возвращает желаемый результат.

Вот код, который я пробовал с запросом «04_AlarmCounts»

SELECT A.AlarmTime, A.HourEarly, A.HourLate, 
(SELECT COUNT(*) FROM '03_DataSelection-Appended' B WHERE B.AlarmTime Between A.AlarmTime AND A.HourEarly) AS NumAlarmsEarly
FROM '03_DataSelection-Appended' AS A;

PART 2 - Добавление дополнительных переменных

Я пытался добавить дополнительные кальки во вложенную l oop, но продолжаю получать синтаксическую ошибку, код, с которой мне кажется, что я ближе всего, выглядит следующим образом:

SELECT A.AlarmTime, A.HourEarly, A.HourLate, A.MidPointBegin, A.MidPointEnd,
(SELECT COUNT(*) FROM [03_DataSelection-Appended] B WHERE B.AlarmTime Between A.AlarmTime AND A.HourEarly) AS NumAlarmsEarly
(SELECT COUNT(*) FROM [03_DataSelection-Appended] B Where B.AlarmTime Between A.AlarmTime AND A.HourLate) AS NumAlarmsLate
FROM [03_DataSelection-Appended] AS A;

Я пытался использовать UNION SELECT, а также возиться с (), чтобы включить оба оператора SELECT в (). Я предполагаю, что решение довольно близко.

Заранее спасибо

1 Ответ

1 голос
/ 14 апреля 2020

Я думаю, что вам нужен подзапрос, у которого SQL выглядит следующим образом:

SELECT A.AlarmTime, A.HourEarly, A.HourLate, 
(SELECT COUNT(*) FROM [03_DataSelection-Appended] B WHERE B.AlarmTime Between A.AlarmTime AND A.HourEarly) AS NumAlarmsEarly
FROM [03_DataSelection-Appended] AS A;

С уважением

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...