【发布时间】:2019-07-29 17:33:20
【问题描述】:
我已经安装了 Teradata Express 并在其中加载了名为“Finance”的 teradata 公开可用的数据库。
它有一些使用 PK-FK 的父子关系。
我的要求是找出所有父母,授予给定孩子的父母。
我已经使用了DBC.All_RI_Parents 元数据表并编写了一个递归 SQL 来找出相同的结果,但它没有给出父母的父母和给定孩子的伟大父母。
WITH RECURSIVE CTE
(indexid,
indexname,
parentdb,
parenttable,
parentkeycolumn,
childdb,
childtable,childkeycolumn,
DEPTH) AS
(
select indexid,indexname,parentdb,parenttable,parentkeycolumn,
childdb,childtable,childkeycolumn,1 AS DEPTH
from DBC.All_RI_Parents where childdb='finance' and childtable='fin_loan'
UNION ALL
SELECT par.indexid,par.indexname,par.parentdb,par.parenttable,par.parentkeycolumn,
par.childdb,par.childtable,par.childkeycolumn ,
CTE.DEPTH + 1
FROM CTE INNER JOIN DBC.All_RI_Parents par
ON CTE.parentkeycolumn = par.childkeycolumn
and CTE.parenttable = par.childtable
and CTE.parentdb = par.childdb
)
SELECT * FROM CTE
我已经从
下载了数据集https://community.teradata.com/t5/Blog/Demo-databases-for-download/ba-p/85684
如果我在这里做错了,请告诉我。
【问题讨论】:
标签: sql teradata teradata-sql-assistant