簡體   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