如何从通过日期而来的一组日期中选择最大日期,而不是高日期?

时间:2019-02-06 19:48:05

标签: informatica

我大约有7个字段来自来源。我需要在informatica表达式中选择所有日期的最高日期。我可能还会在任何字段中获得默认的高日期(12/31/9999),但是如果该日期出现在任何字段中,则在比较中必须跳过该日期。

例如,如果我的来源字段包含数据-1/1/2001,1/2 / 2002、2 / 2,2003、12 / 31/999。

然后我的表达式输出必须是2/2/2003。

3 个答案:

答案 0 :(得分:1)

您可以在SQ级别(自定义sql查询)或Informatica级别执行此操作: https://forgetcode.com/informatica/1472-greatest-find-greatest-value

第1步:

定义每个字段的检查(或内联)

DATE_1_CHECKED =  IIF( DATE_1 = TO_DATE('9999.. ', 'YYYY-' ), NULL, DATE_1)

第2步:

GREATEST(DATE_1, DATE_2, DATE_3 ) 

ps。我不确定转换函数TO_DATE,请阅读文档。

ps。如果要削减informatica中日期/时间的精度,请使用trim(DATE_1,'DD')来获取HH24:MM:SS零填充的日期。

答案 1 :(得分:1)

创建将丢弃默认端口的其他端口,例如

class QmlTranslator : public QObject
{
    ...
    void loadLanguage(QString language, QObject* objDataloop);
    ...
};

...

qmlTranslator.loadLanguage(lang, DataloopWrapper::qmlInstance(aQMLEngineObjectPointer, aQJSEnginePointer));

现在在聚合器转换中使用agg_Date = IIF(in_Date = '12/31/9999', NULL, in_Date) 来计算MAX。

答案 2 :(得分:0)

编写一个IIF以使用<,>比较日期值,并输出最大的和!= 12/31/999