使用多个临时表创建存储过程

时间:2017-10-04 15:43:31

标签: sql stored-procedures macros teradata temp-tables

所以我创建了一个基本上运行DML语句的报告,该语句是基于多个易失性表构建的。我构建它的方式是我的每个临时表基本上都是从前面得到的。例如,在我的第一个表格中,我定义了数据集'我的其他临时表定义了我的" exclusions",然后我的最后一个临时表将它全部组合起来,然后在最终查询中执行它。

我希望自动化此报告以每天提取数据,但我不确定是否为其创建宏或sp。任何一种方法的更大问题是,我怎么能够有效地利用每个临时表?我已经考虑将所有表格合并到一个GIANT(1000+行)DML语句中,但是SURELY,肯定会有更好,更简单的选项。

非常感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

或者,您可以使用Common Table Expression (CTE)代替临时表:

WITH cte1 AS
( 
    SELECT *
    FROM table_1
    WHERE
), cte2 AS
(
    SELECT...
    FROM cte2 
    JOIN ...
    WHERE
)
...
SELECT *
FROM cte_n;

一个CTE可以依赖于前一个CTE,也可以使用递归并将结果合并到最终查询中。