SSIS 2005 可以合并连接适应一对多连接

发布于 2024-10-20 22:08:59 字数 268 浏览 6 评论 0原文

我有一个数据流任务,它执行一些脚本组件任务、排序,然后执行合并连接。我想让合并连接作为一对多进行连接。如果我执行内连接,我得到的记录太少:Too Few Records

如果我执行左外连接,我得到太多记录: WAY 太多!

我正在寻找“恰到好处”的金发姑娘版本(这将是39240 条记录)。

I have a Data Flow Task that does some script component tasks, sorts, then does a Merge Join. I'd like to have the Merge Join do the join as a 1-many. If I do an Inner Join, I get too few records:Too Few Records

If I do a Left Outer Join, I get WAY too many records: WAY too many!

I'm looking for the Goldilocks version of 'Just Right' (which would be 39240 records).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

深海蓝天 2024-10-27 22:08:59

您可以在合并连接的左连接版本之后添加条件拆分,并使用非匹配条件,例如

isnull(tmpAddressColumn)

并将相关匹配流条件(默认输出)发送到您的目的地。

如果仍然没有得到正确的编号,则需要检查合并连接条件并检查每个源中是否存在重复的 ID。

You can add a Conditional Split after your left join version of the Merge Join, with a non-matching condition like

isnull(tmpAddressColumn)

and send the relevant matching flow condition (the default output) to your destination.

If you still don't get the correct number, you'll need to check the merge join conditions and check if there are duplicate IDs in each source.

旧伤还要旧人安 2024-10-27 22:08:59

如果您使用正确的合并连接选项,则行数不应该是您用来衡量的数量。由此产生的数据集应该是驱动因素。 tmpManAddress 表中的结果看起来正确吗?

对于开发,您可能希望将脚本组件的输出推送到表中,以便您可以查看正在使用的数据。这将使您能够确定哪种类型的联接以及哪些列可以为您提供所需的结果。

The number of rows shouldn't be what you're using to gauge if you're using the correct options for the Merge Join. The resulting data set should be the driving factor. Do the results look correct in the tmpManAddress table?

For development you might want to push the output of the script components to tables so you can see what data you're starting with. This will allow you to work out which type of join, and on which columns, give you the results you want.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文