Я хочу написать оператор case, в котором я могу видеть результат в одной строке «PASS» или «FAIL» в зависимости от условия.
select max(a.ODS_Process_Timestamp) from ODS.DW_COUNTRY a where a.ODS_CURRENT_FLAG=1;
вывод этого значения
06-FEB-19 06.25.40.000000000 AM
select a.ODS_Process_Timestamp,a.ODS_CURRENT_FLAG from ODS.DW_COUNTRY a
where a.ODS_CURRENT_FLAG=1 group by a.ODS_CURRENT_FLAG,a.ODS_Process_Timestamp;
на выходе это
ODS_Process_Timestamp ODS_CURRENT_FLAG
06-FEB-19 06.25.40.000000000 AM 1
Теперь я хочу получить регистр, где я буду сравнивать первый запрос max (a.ODS_Process_Timestamp) равен 2-му запросу ODS_Process_Timestamp, так что это пароль, иначе не получится.
select case when
(select max(a.ODS_Process_Timestamp) from ODS.DW_COUNTRY a where
a.ODS_CURRENT_FLAG=1)=(l.ODS_Process_Timestamp from
(select a.ODS_Process_Timestamp,a.ODS_CURRENT_FLAG from ODS.DW_COUNTRY a
where a.ODS_CURRENT_FLAG=1 group by
a.ODS_CURRENT_FLAG,a.ODS_Process_Timestamp)l)
then 'Pass' else 'Fail'
end as Timestamp_validation from ODS.DW_COUNTRY;
Ожидаемый результат должен быть примерно таким:
Timestamp_validation - PASS