Как выбрать максимальную дату из группы дат, поступающих через источник, кроме высокой даты? - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть около 7 полей из источника.Мне нужно выбрать самую высокую дату из всех в выражении informatica.Я также могу получить максимальную дату по умолчанию (31.12.9999) в любых полях, но если эта дата появляется в любом из полей, то при сравнении ее следует пропустить.

например, если мои исходные поля содержат данные - 01.01.2001, 1/2/2002, 2/22003, 12/31 / 999.

Тогда вывод моего выражения имеетбыть 2/2 / 2003.

Ответы [ 3 ]

0 голосов
/ 07 февраля 2019

Создайте дополнительный порт, который будет сбрасывать по умолчанию, например

agg_Date = IIF(in_Date = '12/31/9999', NULL, in_Date)

Теперь используйте agg_Date в Преобразовании агрегатора для расчета MAX.

0 голосов
/ 07 февраля 2019

написать IIF для сравнения значений даты, используя <,> и вывести наибольшее и! = 12/31/999

0 голосов
/ 07 февраля 2019

Вы можете сделать это на уровне 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 ) 

пс.Я не уверен насчет функции преобразования TO_DATE, пожалуйста, прочитайте документацию.

пс.Если вы хотите сократить точность даты / времени в informatica, используйте обрезку (DATE_1, 'DD'), чтобы получить дату с HH24: MM: SS, заполненный нулями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...