繁体   English   中英

Informatica:比较两个表之间的日期字段

[英]Informatica: comparing the date field between two tables

我是informatica软件的新手。 现在我有两个表,例如AAABBB表。

AAA: last_post_date

BBB: Trx_No, Field1, Field2, trx_date

我想将BBB表移动到trx_date必须大于last_post_date的目标表。 我无法使用Joiner转换,因为它没有>,<,> =和<=运算符。 如果我想使用查找转换,如何在这种情况下或其他任何方式使用它可以帮助我做到这一点。 我在许多网站上搜索了有关查找转换的信息,但仍然不知道如何使用它。

请帮忙。

谢谢!

我假设AAA只有1行,其中包含last_post_date 如果两个表都在同一个数据库中,则可以使用Source Qualifier覆盖

select Trx_No, Field1, Field2, trx_date from BBB where trx_date > last_post_date

但是,如果两个表都在不同的数据库中和/或您不能在它们之间创建数据库链接,请使用以下解决方案。

  • 在两个源的Source Qualifier之后,使用Expression转换。
  • 在两个Expression Transformations中都添加一个输出端口,例如o_Dummy并将值硬编码为1 (对于两个转换)
  • 使用Joiner并使用normal join 加入条件为o_Dummy = o_Dummy1
  • 之后,使用filer过滤器过滤记录,其中trx_date > last_post_date

这就是你的流程。

SQ_AAA -> Expression -> Joiner -> Filter -> Target
SQ_BBB -> Expression -^

使用源限定符从BBB读取数据,然后查找AAA和条件为trx_date>last_post_date的过滤器。

理想情况下,您将使用从Expression变量端口v_LastPostDate = IIF(ISNULL(v_LastPostDate), LKP.LoopkupToAAA, v_LastPostDate)的未连接查找,例如v_LastPostDate = IIF(ISNULL(v_LastPostDate), LKP.LoopkupToAAA, v_LastPostDate) -这样可以确保您仅执行一次查找。 并不是说单一值会很重要,但是我想我会分享一些好的做法:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM