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