不知何故,我觉得这应该是一个简单的 - 但我看不出如何在SSIS包中解决这个问题。
我有两个表:Order和CustomerMapping。我的CustomerMapping表不包含我的所有客户,只包含已更改Id和CustomerName的客户。
表的定义是:
订单:
Id(int)
CustomerId(int)
客户名称(nvarchar(50))
CustomerMapping:
Id(int)
ObsoleteId(int)
客户名称(nvarchar(50))
ObsoleteCustomerName(nvarchar(50))
订单表中的数据是:
Id CustomerId CustomerName
1 100 Customer 1
2 101 Customer 2
3 102 Customer 3
CustomerMapping中的数据:
Id ObsoleteId CustomerName ObsoleteCustomerName
20 100 New Customer 1 Customer 1
21 101 New Customer 2 Customer 2
我想使用SSIS包提供的工具在SQL中创建我想做的事情:
SELECT o.Id,
CustomerId = ISNULL(cm.Id, o.CustomerId),
CustomerName = ISNULL(cm.CustomerName, o.CustomerName)
FROM Order AS o
LEFT JOIN CustomerMapping AS cm ON o.CustomerId = cm.ObsoleteId
上述查询的结果是
Id CustomerId CustomerName
1 20 New Customer 1
2 21 New Customer 2
3 102 Customer 3
我现在想把这个结果集保存到一个新表中。
我知道我可以采取上面的SQL并做我想做的事情(这可能是我最终要做的事情),但不知怎的,我相信我可以进行查找,合并和/或合并加入......但是我我必须承认,如果不将查询分成两部分,然后必须从每个新的"线程"中保存,我无法真正看到我这样做。
以上是相当简化的...我有4列我必须比较,然后再做一些其他的东西,然后再将它保存到新表中,这就是为什么我要保留一个& #34;螺纹"
编辑:图片添加: