Как найти все совпадающие строки в 2 столбцах в SQL? - PullRequest
0 голосов
/ 04 августа 2020

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

Итак, в основном

Select ParentCode, Childcode 
from TABLE 
where count(ParentCode)>1

(и наоборот)

Кажется, я должен включить оба столбца в группу, если я хочу, чтобы они оба были в списке. Я пробовал подзапросы, но безуспешно. Я знаю, что могу настроить скрипт в VBA на l oop для каждого кода и вернуть результаты (используя basi c select where count > 1), но это кажется наименее эффективным подходом.

Пример данные:

введите описание изображения здесь

Ответы [ 3 ]

0 голосов
/ 04 августа 2020

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

select Parentcode, Childcode
from Table
where Parentcode in (
    select Parentcode
    from Table
    group by Parentcode
    having count(Parentcode) > 1
)
or Childcode in (
    select Childcode
    from Table
    group by Childcode
    having count(Childcode) > 1
) 
0 голосов
/ 04 августа 2020

Вы можете использовать EXISTS:

select t.* from tablename t
where
  exists (select 1 from tablename where parentcode <> t.parentcode and childcode = t.childcode)
  or
  exists (select 1 from tablename where parentcode = t.parentcode and childcode <> t.childcode)
0 голосов
/ 04 августа 2020

Вы должны быть примерно там с этим.

select Perentcode, count(ParentCode) count 
from TABLE 
group by ParentCode 
having count(Parentcode)>1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...