Выбор идентификатора, который появляется более одного раза, разные данные - PullRequest
1 голос
/ 26 июня 2019

Выбор из 4 столбцов: ID, ЛИЦЕНЗИЯ, КОД, ABBR

Идентификатор может появляться более одного раза с другими данными в оставшихся столбцах. Я хочу исключить все записи, в которых идентификатор появляется только один раз.

Это для MS Access 2016.

SELECT ID, LICENSE, CODE, ABBR
FROM tblLicense
WHERE CODE IN ("A", "B", "C")
GROUP BY ID, LICENSE, CODE, ABBR
HAVING COUNT(ID)>1;

Если я выполняю простой запрос выбора без подсчета, я вижу записи, в которых идентификатор появляется только один раз, а также записи, в которых идентификатор появляется более одного раза. Но когда я добавляю COUNT (), я получаю ноль записей. Я ожидал, что это исключит любые записи, где идентификатор появляется более одного раза. Не уверен, как это исправить. Ваша помощь очень ценится.

Ответы [ 2 ]

2 голосов
/ 26 июня 2019

Вы можете попробовать использовать NOT IN для идентификатора со счетом = 1

select  ID, LICENSE, CODE, ABBR 
from  
FROM tblLicense
WHERE CODE IN ("A", "B", "C") 
AND id not in  (
  select id 
  from tblLicense
  WHERE CODE IN ("A", "B", "C") 
  group by id  
  having count(*) = 1 
) 
1 голос
/ 26 июня 2019

Вы также можете достичь этого с помощью объединений, например:

select t1.id, t1.license, t1.code, t1.abbr
from tbllicense t1 inner join
(
    select t2.id
    from tbllicense t2
    where t2.code in ("A", "B", "C")
    group by t2.id
    having count(*) > 1
) q on t1.id = q.id
where t1.code in ("A", "B", "C")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...