我有一个表(Id,ArticleCode,StoreCode,Adress,Number),其中包含仅基于这些列的重复条目[ArticleCode,StoreCode]。SSIS - 筛选重复行
目前我可以使用聚合转换过滤重复行,但问题是在输出行中,我只有两列[Article,StoreCode],我也需要其他列。
我有一个表(Id,ArticleCode,StoreCode,Adress,Number),其中包含仅基于这些列的重复条目[ArticleCode,StoreCode]。SSIS - 筛选重复行
目前我可以使用聚合转换过滤重复行,但问题是在输出行中,我只有两列[Article,StoreCode],我也需要其他列。
只是在OLEDB源组件使用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
为了摆脱重复的,并选择由[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,商店代码]等于被选择和[ADRESS,号码]不同?
如果Id是自动增加,则order by Id
获得第一个输入记录order by Id desc
- 最后一个。
您有某种方式可以定义重复项中的哪个[地址,数字]对是正确的选择。