SSIS使用datetime列获取最新记录

问题描述 投票:0回答:1

我正在为SQL Server 2014软件包构建SSIS,目前正在尝试使用两个来源之间的datetime列从2个不同来源获取最新记录,并实现一种实现此目的的方法。到目前为止,我正在对thirdpartyid使用Lookup Task来匹配我最终需要比较的记录,并使用Merge Join将它们组合在一起,并最终拥有一个具有最新记录的登台表。显示已将不在AD1中的记录插入到临时表中,因此此时这些记录是一对一匹配。这两个来源看起来都是这样,它们的datetime列完全相同,只是日期不同,并且某些信息具有空值,因为没有历史记录。

样本输出

“表格输出”

到目前为止,

这是我的数据流任务“数据流任务”。我真的是SSIS的新手,所以任何想法或建议都将不胜感激。

ssis sql-server-2014
1个回答
0
投票

鉴于您的两个源之间存在1:1匹配,我将其构造为源(V1)->查找(AD1)

基于thirdpartyid定义查找,并检索所有AD1列。您可能最终会像namename_ad1等数据流一样>

然后我将添加一个派生列,以标识日期是否不同(假设在这种情况下,您需要采取措施)

IsNull(LastUpdated_AD1) || LastUpdated > LastUpdated_AD1

如果AD1中的列为空,或者V1最近更新的列大于AD1版本,则该表达式将创建一个布尔值。

[您可能会在您的数据流中添加条件拆分,并基于我们新列的值,然后将更改后的数据路由到您的用于处理更新的机制(OLE DB命令或OLE DB目标+执行SQL Task发布数据流以执行批更新)

© www.soinside.com 2019 - 2024. All rights reserved.