Как найти повторяющиеся пучки строк для разных групп
Друзья,
У меня есть таблица, которая содержит 4 столбца, как показано ниже.
GRP_KIT_NO COMPONENT COMP_TYPE QTY PLATE-1_4123 99S31653 PRT 1 PLATE-1_4123 33125112 PRT 1 PLATE-1_4123 49DE0006 PRT 1
Теперь я вставляю одни и те же строки в одну и ту же таблицу с разными Grp_KIt_NO, как
GRP_KIT_NO COMPONENT COMP_TYPE QTY PLATE-2_4123 99S31653 PRT 1 PLATE-2_4123 33125112 PRT 1 PLATE-2_4123 49DE0006 PRT 1
Поэтому я создал несколько копий одной и той же даты с разными Grp_KIt_NO.
Теперь наш клиент не хочет выставлять счета группам dupliacte, которые содержат одни и те же данные.
Я не могу найти такую группу.
Теперь я приведу пример
предположим, у меня есть вход
GRP_KIT_NO COMPONENT COMP_TYPE QTY PLATE-1_4123 22 PRT 1 PLATE-1_4123 33 PRT 1 PLATE-2_4123 22 PRT 1 PLATE-2_4123 33 PRT 1 PLATE-3_4123 11 PRT 1 PLATE-3_4123 33 PRT 1 PLATE-3_4123 22 PRT 1 AAA-3_4123 33 PRT 1
Поэтому я хочу получить такой вывод
GRP_KIT_NO COMPONENT COMP_TYPE QTY PLATE-1_4123 22 PRT 1 PLATE-1_4123 33 PRT 1 PLATE-2_4123 22 PRT 1 PLATE-2_4123 33 PRT 1
Потому что оба grp_kit_no соответствуют точным данным.
Пожалуйста, помогите мне, ребята.
Что я уже пробовал:
Я попробовал ниже запрос, но не так, как ожидалось
WITH A -- Get a list of unique combinations of Alias and [Record ID] AS ( SELECT Distinct GRP_KIT_NO, COMPONENT, COMP_TYPE,QTY--,INDEX_NO from GROUP_KIT_BOM ) , B -- Get a list of all those Alias values that have more than one [Record ID] associated AS ( SELECT COMPONENT, COMP_TYPE,QTY--,INDEX_NO FROM A GROUP BY COMPONENT, COMP_TYPE,QTY--,INDEX_NO HAVING COUNT(*) > 1 ) --select * from b order by COMPONENT, COMP_TYPE,QTY SELECT A.GRP_KIT_NO, A.COMPONENT, A.COMP_TYPE,A.QTY FROM A JOIN B ON A.COMPONENT = B.COMPONENT AND A.COMP_TYPE=B.COMP_TYPE ANd A.QTY=B.QTY-- AND A.INDEX_NO=B.INDEX_NO order by GRP_KIT_NO,COMPONENT, COMP_TYPE,QTY
Tomas Takac
Вы должны рассмотреть возможность хранения данных другим способом, который позволил бы вам легко улавливать повторное использование компонентов.
Rahul_Pandit
Томас,
Спасибо за ответ. Я не могу изменить подход к хранению ценности в качестве требования нашего клиента .
Пожалуйста, подскажите мне, как я могу написать запрос на то же самое, если мой вопрос вам ясен.
Tomas Takac
То, что вы хотите сделать, не тривиально. В основном вам нужно сравнить каждую группу со всеми остальными, чтобы выяснить, совпадают ли они. Я подумаю об этом и, возможно, позже опубликую ответ. Это может потребовать некоторых дополнительных функций, поэтому я рекомендую вам обновить теги вашего вопроса и указать версию SQL Server, которую вы используете.
Rahul_Pandit
обновленный.
Rahul_Pandit
Дорогой Томас,
Пожалуйста, опубликуйте свой ответ. Его очень важная задача для меня и нужно выполнить как можно скорее.