Эффективно найти последнюю дату в нескольких таблицах - Teradata SQL - PullRequest
0 голосов
/ 07 апреля 2020

Hello_ Итак, у меня есть несколько таблиц в терадате, я пытаюсь найти последнюю дату отчета в каждой таблице

Теперь я делаю это следующим образом:

SELECT 
        'Tablename1'  AS table_name,
        MAX(report_date) report_date
        FROM PRD.tablenamt1
        WHERE REPORT_DATE > CURRENT_DATE-5
    UNION ALL
 SELECT 
        'Tablename2'  AS table_name,
        MAX(report_date) report_date
        FROM PRD.tablenamt2
        WHERE REPORT_DATE > CURRENT_DATE-5

Существует ли лучший способ? У меня есть много таблиц, в которых я хочу видеть последний отчетный день

1 Ответ

0 голосов
/ 09 апреля 2020

Альтернативой может быть:

create table counts_table ( table_name varchar(100), max_date date);

CREATE PROCEDURE get_max_date (in_object VARCHAR(100), in_date_col VARCHAR(100))
BEGIN
  CALL Dbc.SysExecSql('insert into counts_table select ''' || in_object 
    || ''', max(' || in_date_col || ') from ' || in_object);
END;

-- and this is how you run different tables with different date columns
Call get_max_date('PRD.tablenamt1','report_date');
Call get_max_date('PRD.tablenamt2','report_date');

...
select * from counts_table;
...