Найти недостающие порядковые номера в таблице доступа - PullRequest
0 голосов
/ 10 февраля 2020

У меня есть таблица MS Access в базе данных Access 2003 с именем Comments и столбец с именем Sequence Number в таблице комментариев. В столбце «Порядковый номер» содержатся номера в диапазоне от 1 до 20000. Однако в столбце «Порядковый номер» отсутствуют определенные номера, и я хочу иметь возможность просматривать пропущенные номера, например, ниже, я хочу выполнить запрос на доступ, чтобы увидеть, что 4 отсутствует.

Sequence Number
 1
 2
 3
 5
 6

Я использую следующий запрос Access в представлении SQL, чтобы получить то, что я хочу.

SELECT ([Sequence Number]+1) AS MissingFrom, DMin("Sequence Number","Comments","Sequence Number>" & [Sequence Number]) AS MissingUntil
FROM Comments
WHERE (((DMin("Sequence Number","Comments","Sequence Number>" & [Sequence Number]))<>([Sequence Number]+1)));

Однако, когда я запускаю запрос, я получаю следующую ошибку :

Syntax error (missing operator) in query expression 'Min(Sequence Number)'. 

Может кто-нибудь указать, что вызвало сбой запроса? Спасибо!

Ответы [ 2 ]

1 голос
/ 10 февраля 2020

С NOT EXISTS:

SELECT MIN([Sequence Number]) + 1 
FROM Comments AS c
WHERE
  c.[Sequence Number] < (SELECT MAX([Sequence Number]) FROM Comments)
  AND NOT EXISTS (
    SELECT 1 FROM Comments
    WHERE [Sequence Number] = c.[Sequence Number] + 1
  )
1 голос
/ 10 февраля 2020

Вы можете получить первое в недостающей серии, используя:

select num + 1
from comments
where num + 1 not in (select num from comments) and
      num + 1 <> (select max(num) from comments);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...