Дублирующиеся строки при самостоятельном объединении таблиц в SQL - PullRequest
0 голосов
/ 27 ноября 2018

Я пытаюсь самостоятельно объединить таблицу на основе столбца «Номер склада».Цель состоит в том, чтобы перечислить номера деталей, описания и классы элементов любых пар деталей, которые находятся в одном классе элементов и на одном складе.Ниже приведен пример желаемых выходных и начальных данных.

НАЧАЛЬНЫЕ ДАННЫЕ

Starting Data

ПРИМЕР НЕКОТОРЫХ ПОЛЕЗНЫХ ДАННЫХ

desired output

Однако, когда происходит это самостоятельное объединение, «точные» дубликаты не появляются, а пары встречаются в таблице дважды.

ПРИМЕРВЫХОД С ПРОБЛЕМАМИ (ВЫДЕЛЕНО) PROBLEMS

Я пробовал большинство итераций UNION, INNER JOIN и других методов соединения.Можно ли удалить пары, поскольку технически это не является точной копией другой строки?

Текущий код SQL enter image description here

1 Ответ

0 голосов
/ 27 ноября 2018

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

SELECT
    t1.PARTNUMB, t1.PARTDESC, t1.ITEMCLSS, t2.PARTNUMB, t2.PARTDESC, t2.ITEMCLSS
FROM PARTFIRST t1
INNER JOIN PARTSECOND t2
    ON t1.WRHSNUMB = t2.WRHSNUMB AND
       t1.ITEMCLSS = t2.ITEMCLSS AND
       t1.PARTNUMB < t2.PARTNUMB;

Проблема с использованием FIRST.PARTNUMB <> SECOND.PARTNUMB заключается в том, что он будет сообщать два разных номера детали дважды , один раз слева / справа и наоборот.Используя строго меньшее, чем неравенство, мы исключаем «дубликаты» при их просмотре.

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