【发布时间】:2018-05-12 11:31:06
【问题描述】:
我正在使用连接到企业 DW 的 Terdata SQL 助手。我编写了下面的查询,以显示截至特定时间点的未清项目清单。引用的表在加载日期对其状态进行更改时加载和存储新记录(并且不删除历史记录)。我的查询的输出是指定日期的 1 行。我可以创建某种存储过程或递归查询来构建这些摘要行的历史记录(每天有 1 个新行)吗?我过去没有使用过这样的功能;如果适用,可以链接到以前回答的有关我如何在研究其他可能的解决方案方面走上正轨的问题或建议的链接;只是试图弥合我的知识差距。
SELECT
'2017-10-02' as Dt
,COUNT(DISTINCT A.RECORD_NBR) as Pending_Records
,SUM(A.PAY_AMT) AS Total_Pending_Payments
FROM DB.RECORD_HISTORY A
INNER JOIN
(SELECT MAX(LOAD_DT) AS LOAD_DT
,RECORD_NBR
FROM DB.RECORD_HISTORY
WHERE LOAD_DT <= '2017-10-02'
GROUP BY RECORD_NBR
) B
ON A.RECORD_NBR = B.RECORD_NBR
AND A.LOAD_DT = B.LOAD_DT
WHERE
A.RECORD_ORDER =1 AND Final_DT Is Null
GROUP BY Dt
ORDER BY 1 desc
【问题讨论】:
标签: sql stored-procedures teradata