2016-11-05 4 views
1

У меня есть таблица (Id, ArticleCode, StoreCode, Adress, Number), которая содержит повторяющиеся записи на основе только этих столбцов [ArticleCode, StoreCode].SSIS - Фильтровать повторяющиеся строки

В настоящее время я могу фильтровать повторяющиеся строки с использованием преобразования Aggregate, но проблема в выходных строках У меня есть только два столбца [Article, StoreCode], и ​​мне нужны и другие столбцы.

ответ

0

Просто в использовании OLEDB Source компонента SQL команды в качестве источника вместо имени таблицы и записать следующую команду (в качестве источника):

SELECT [ID] 
    ,[ArticleCode] 
    ,[StoreCode] 
    ,[Address] 
    ,[Number] FROM (

SELECT [ID] 
    ,[ArticleCode] 
    ,[StoreCode] 
    ,[Address] 
    ,[Number] 
    ,ROW_NUMBER() OVER(PARTITION BY [ArticleCode] 
    ,[StoreCode] ORDER BY [ArticleCode] 
    ,[StoreCode]) AS ROWNUM 
FROM [dbo].[Table_1]) AS T1 

WHERE T1.ROWNUM = 1 
0

Чтобы избавиться от дубликатов и выбрать уникальные записи по [ArticleCode, код филиал]:

select top 1 with ties 
    Id   , 
    ArticleCode , 
    StoreCode , 
    Adress  , 
    Number 
from 
    YourTable 
order by 
    row_number() over(partition by ArticleCode, StoreCode order by Id) 

Но какая из двух записей должна быть выбран, когда [ArticleCode, код филиал] равен и [Адрес, номер] отличается?

Если идентификатор автоинкремента, то order by Id получает первую введенную запись, order by Id desc - последний.

Вы должны как-то определить, какая пара [Адреса, Число] среди дубликатов правильно выбрана.

Смежные вопросы