[英]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.