我正在尝试完成一些在 SQL 中很容易完成的事情,但在不使用 SQL 的情况下在 SSIS 中完成似乎非常具有挑战性。基本上,我需要合并和连接一个多对一关系的字段。
给定实体:[合同项目](许多)到(一个)[帐户]
有一个字段 [ ari_productsummary ] 包含合同项目实体上列出的产品。我们想将该值作为 [ ari_activecontractitems ]写入帐户。但是,一个Account可能有多个与之关联的Contract Item记录,在这种情况下,我们希望连接这些值。我们也只希望连接不同的值(在我的数据流中已经解决了不同的行)。
这可以通过写入临时表来完成,然后使用查询或视图来获取汇总结果,如下所示。我创建了一个名为TESTTABLE的 SQL 表,其中包含来自Contract Item实体的 [ ari_productsummary ]以及引用 [ accountid ] 以将其映射回Account。然后我编写了以下查询作为视图:
SELECT distinct accountid,
(SELECT TT2.ari_productsummary + '; '
FROM TESTTABLE TT2
WHERE TT2.accountid = TT.accountid
FOR XML PATH ('')
) AS 'ari_activecontractitems'
FROM TESTTABLE TT
执行该查询为我提供了我想要的结果,然后我可以将其用于导入到Account实体中,如下所示:
但是如何在 SSIS 数据流中执行此操作而不写入 SQL 表作为数据的临时占位符? 我想在一个数据流容器内完成整个过程,而不使用临时 SQL 表/视图。整个总结过程需要即时完成:
是否有人有不需要临时 SQL 表/视图/查询但完全包含在数据流中的解决方案?
我正在使用 VS 2017 和 KingswaySoft Dynamic CRM 365 ETL 工具集来开发我的解决方案/包。