2012-09-06 69 views
4

我从Remove duplicates in SSIS Data Flow了解到如何使用Sort转换来删除具有重复数据值的行。SSIS数据流如何删除重复行但在SSIS中记录重复项

在我的情况下,我正在读取分隔文件,需要消除重复项,并记录具有重复键的行。我需要将这些行输出到另一个分隔文件,并将其发回给客户,以便他们可以更正数据并重试。

虽然我不能完全弄清楚如何做到这一点。我将试验Aggregate和Merge Join,但我希望这样做有一个已知的模式。

回答

6

您好我的答案会与任何数据,因为在互联网上的一些解决方案需要行的主键,为我的解决方案主键不是必需的。 这里样本结构和样本数据集:

a b 
1 23 
1 23 
16 59 
12 12 
13 45 
12 12 
45 56 

enter image description here

刚组的所有列,并添加最后一列 - 算上所有的(如果有两个以上的列以上,你只需要在“聚合”元素把所有列和foreach设置组通过,并在年底建成“计算所有”栏):

enter image description here

然后,只需添加条件分割元件,并采取在哪里月的所有行重超过1个相同行:

enter image description here

实例:

enter image description here

+0

很不错:+1。但是,如果列a和b是关键列,并且我还希望结果OLE DB目标中的列C和D? –

+0

顺便说一句,希望我能+10在答案的伟大细节 –

+0

约翰桑德斯IT不重要,如果你所有的列都是键不是,有多少列。 **你只需要在“Aggregate”元素中放置所有列和foreach set组,并且最后放置“Count All”列。这会工作。 – Justin