我大约有7个字段来自来源。我需要在informatica表达式中选择所有日期的最高日期。我可能还会在任何字段中获得默认的高日期(12/31/9999),但是如果该日期出现在任何字段中,则在比较中必须跳过该日期。
例如,如果我的来源字段包含数据-1/1/2001,1/2 / 2002、2 / 2,2003、12 / 31/999。
然后我的表达式输出必须是2/2/2003。
答案 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