繁体   English   中英

有效地在几个表中找到最后日期 - Teradata SQL

[英]Efficiently find last date in few table - Teradata SQL

你好_所以,我在 teradata 中有几个表,我尝试在每个表中找到最后一个 report_date

现在我这样做:

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

存在更好的方法吗? 我有很多表,我想在其中查看最后一个 report_day

替代方案可能是:

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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM