我有一个表(Id,ArticleCode,StoreCode,Adress,Number),它包含仅基于这些列的重复条目[ArticleCode,StoreCode]。
目前我可以使用聚合转换过滤重复行,但问题出在输出行中我只有两列[Article,StoreCode],我也需要其他列。
答案 0 :(得分:0)
就在OLEDB Source组件中,使用SQL Command作为Source而不是Table name,并编写以下命令(作为源代码):
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
答案 1 :(得分:0)
通过[ArticleCode,StoreCode]删除重复项并选择唯一记录:
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,StoreCode]相等且[Adress,Number]不同时,必须选择两条记录中的哪一条?
如果ID为自动递增,则order by Id
获取第一个输入的记录order by Id desc
- 最后一个。
您已经以某种方式定义了重复项中哪个[地址,数字]对正确无误。