如何让我的外键输出之一在 SSIS 的合并转换中重复?
How can I get one of my foreign key outputs to repeat in a merge transformation in SSIS?
我以前试过问过这个问题,但似乎被掩盖了。
首先,这里有两张图片显示 table 结构和我在 SSIS 中获得的当前输出。
Table 图
当前输出
所以在table三个里面,只有一个条目。不过,此条目(名称)适用于其他外键。我希望最终输出看起来像我当前的输出,但应该只有 NULLS 而不是 NULLS。
通过研究和学习合并转换,我能够靠自己走到这一步,但我似乎找不到任何关于以我想要的方式处理数据的方法。
非常感谢您提供的任何提示或建议。
编辑:由于无法明显看到图像,我将尝试描述它们。
table 图有四个 table,瀑布中最上面的一个有一个主键,由三个不同的 table 的三个外键组成。
尝试在 SSIS 中完成此 table 的填写,我的输出包含前两个 table 中的每个外键 ID,但第三个 table 中只有一个。第三个外键的其余部分都是 NULLS。我相信这是因为目前 table 中只有一个条目,但此条目适用于所有外键 ID,因此它应该重复。
它应该是这样的:
ID1 ID2 ID3
1 1 1
2 2 1
3 3 1
但是,我只在第一条记录后的 ID3 字段中得到空值。如何在 ID3 中重复单个 ID?
编辑 2:根据要求我的数据流和合并转换的一些额外屏幕截图。
[![SSIS Dataflow][3]][3]
如果 Table3 始终只有一行,最简单的解决方案是使用执行 SQL 任务将 T3id 保存到变量(控制流),然后使用派生列任务(数据Flow) 将变量添加为新列。
如果这对您(或您的数据)不起作用,您可以查看 here 了解如何伪造 Merge Join 任务以执行您想要的操作。
经过数周的研究,并根据同事的提示,找到了该问题的解决方案。令人惊讶的是,它非常简单,我有点震惊,这里没有人能提供答案。
解决方案很简单;使用数据源,在数据访问模式(SQL命令)中编写如下SQL代码:
SELECT a.T1ID,
b.T2ID,
c.T3ID
FROM Table1 AS a join
Table2 AS b
On a.T1ID = b.T2ID,
Table3 AS c
ORDER BY a.[T1ID] ASC
我以前试过问过这个问题,但似乎被掩盖了。
首先,这里有两张图片显示 table 结构和我在 SSIS 中获得的当前输出。
Table 图
当前输出
所以在table三个里面,只有一个条目。不过,此条目(名称)适用于其他外键。我希望最终输出看起来像我当前的输出,但应该只有 NULLS 而不是 NULLS。
通过研究和学习合并转换,我能够靠自己走到这一步,但我似乎找不到任何关于以我想要的方式处理数据的方法。
非常感谢您提供的任何提示或建议。
编辑:由于无法明显看到图像,我将尝试描述它们。
table 图有四个 table,瀑布中最上面的一个有一个主键,由三个不同的 table 的三个外键组成。
尝试在 SSIS 中完成此 table 的填写,我的输出包含前两个 table 中的每个外键 ID,但第三个 table 中只有一个。第三个外键的其余部分都是 NULLS。我相信这是因为目前 table 中只有一个条目,但此条目适用于所有外键 ID,因此它应该重复。
它应该是这样的:
ID1 ID2 ID3
1 1 1
2 2 1
3 3 1
但是,我只在第一条记录后的 ID3 字段中得到空值。如何在 ID3 中重复单个 ID?
编辑 2:根据要求我的数据流和合并转换的一些额外屏幕截图。
[![SSIS Dataflow][3]][3]
如果 Table3 始终只有一行,最简单的解决方案是使用执行 SQL 任务将 T3id 保存到变量(控制流),然后使用派生列任务(数据Flow) 将变量添加为新列。
如果这对您(或您的数据)不起作用,您可以查看 here 了解如何伪造 Merge Join 任务以执行您想要的操作。
经过数周的研究,并根据同事的提示,找到了该问题的解决方案。令人惊讶的是,它非常简单,我有点震惊,这里没有人能提供答案。
解决方案很简单;使用数据源,在数据访问模式(SQL命令)中编写如下SQL代码:
SELECT a.T1ID,
b.T2ID,
c.T3ID
FROM Table1 AS a join
Table2 AS b
On a.T1ID = b.T2ID,
Table3 AS c
ORDER BY a.[T1ID] ASC