【问题标题】:Correcting Specific Values in SSIS Package.更正 SSIS 包中的特定值。
【发布时间】:2014-08-06 03:12:54
【问题描述】:

我正在为我们的一个部门创建一份报告,该报告按成本中心计算软件许可。我遇到的问题是,我们的高层管理人员位于特定的成本中心,用于组织目的(许可证系统获取),但请求报告的部门需要有成本中心,经理们将所有费用都用于成本中心。

  • 这影响了大约 15 个条目,但报告提取了 300 多个,因此我只需要更正 15 个而不影响其余条目。

我创建了一个标有 [dbo].[CostCenter_corrections] 的表,其中包含两列 [UserID](nvarchar,这是用户名而不是员工 ID)和 [CostCenter_Correction](int,这是他们的费用成本中心)。

我想要做的是在暂存加载结束时设置一个方法,该方法将通过用户 ID 更正这些数字,如 executeSQL 任务,或者构建另一个 SSIS 包来处理暂存数据并将其重新加载到同一个临时表(不确定这是否可能,甚至应该做些什么)。

如果您能想到任何其他方式,我愿意接受。

提前感谢您的帮助。

【问题讨论】:

  • 您是否在使用Execute Tsql Task 来完成此操作时遇到问题?
  • 为什么不把 SSIS 的东西放在一边,只在本报告中使用“其他成本中心”表?
  • 为什么不自己进行暂存加载时应用更正?使用查找任务或类似任务来查找更正,如果存在,则使用更正的值,否则使用表中的值。在实际加载过程之后避免不必要的内务处理。
  • @DanielE。是的,我尝试使用以前的项目作为模板来构建脚本。但是,我无法让它工作。要么参数太不同,要么我设置不正确。我对 TSQL 不够熟悉,无法确定。
  • @DanBracuk,我需要报告中的所有成本中心。但我需要将主(或临时表)中的 15 个成本中心替换为“其他成本中心”中的成本中心。

标签: sql sql-server tsql ssis


【解决方案1】:

您可能需要将查找设置为“将行重定向到不匹配的输出”(您可以从常规选项卡中执行此操作),然后您将从查找中获得两个输出,一个用于匹配的行,一个用于不匹配的行。然后你可以做你需要的工作并将两条管道合并回来。您的 DF 将如下所示:

【讨论】:

  • 太棒了,我会试试的。谢谢你的视觉效果,这真的很有帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多