【发布时间】:2017-01-20 12:53:21
【问题描述】:
我正面临一项任务,由于我缺乏使用 Informatica 组件(尤其是 SQL 转换)的经验,因此我尚未实施。 那么在 PowerCenter 中实现这种子查询的最佳方法是什么:
SELECT
A.ID,
NVL2(A.SACHKONTO, B.KLAMMER, A.ID) AS KLAMMER
FROM
Table1 A,
(SELECT
A.ID AS KLAMMER,
B.ID
FROM
(SELECT
ID,
ID AS VON_ID,
LEAD(ID,1) OVER (ORDER BY ID) - 1 AS BIS_ID
FROM
Table1
WHERE
SACHKONTO IS NULL) A,
Table1 B
WHERE
B.ID BETWEEN A.VON_ID AND A.BIS_ID
) B
WHERE
A.ID = B.ID
所以我尝试了不同的方法并取得了小成功。 第一个是在它的一小部分“分解”SQL(如有必要,我会参考或编辑问题)。 我还尝试将所有查询(在将其调整为 Informatica SQL“语言”之后,但没有成功。
这是我复制此类查询的最接近的解决方案,而不考虑性能的重要性(我确实在 SQ 中使用了 SQL 覆盖),但是从表结果来看,连接没有被正确处理,然后我相信我需要添加另一个管道才能以正确的顺序执行连接:
我的映射解决方案:
【问题讨论】:
标签: sql subquery etl informatica-powercenter