使用 oracle SQL 识别父子记录并避免合并
Identify Parent Child records using oracle SQL and avoid merge
我需要使用 SQL 查询查找父子帐户,并且如果幸存者是子帐户而失败者是父帐户则避免合并过程。
我在 table x 中有以下格式的记录
Survivor Loser
400-GIZ-514 400-1729E3
Table x是一个临时的table,里面的记录存储在base tables
在 base table 中,这 2 条记录之间的关系是
ROW_ID PAR_OU_ID
Parent 400-1729E3 NULL
Child 400-GIZ-514 400-1729E3
请帮助我进行查询以识别这些类型的记录并标记它们,这样它们就不会在每晚的合并过程中被提取。
此查询将只检索行没有匹配父项的记录:
SELECT * FROM BASE_TABLE A
WHERE NOT EXISTS (SELECT 1 FROM BASE_TABLE B WHERE A.PAR_OU_ID = B.ROW_ID)
应该能够使用
从临时 table 中删除记录
DELETE FROM tablex
WHERE EXISTS (
SELECT 1
FROM basetable
WHERE basetable.row_id = tablex.survivor
AND basetable.par_ou_id = tablex.loser
)
我需要使用 SQL 查询查找父子帐户,并且如果幸存者是子帐户而失败者是父帐户则避免合并过程。 我在 table x 中有以下格式的记录
Survivor Loser
400-GIZ-514 400-1729E3
Table x是一个临时的table,里面的记录存储在base tables 在 base table 中,这 2 条记录之间的关系是
ROW_ID PAR_OU_ID
Parent 400-1729E3 NULL
Child 400-GIZ-514 400-1729E3
请帮助我进行查询以识别这些类型的记录并标记它们,这样它们就不会在每晚的合并过程中被提取。
此查询将只检索行没有匹配父项的记录:
SELECT * FROM BASE_TABLE A
WHERE NOT EXISTS (SELECT 1 FROM BASE_TABLE B WHERE A.PAR_OU_ID = B.ROW_ID)
应该能够使用
从临时 table 中删除记录DELETE FROM tablex
WHERE EXISTS (
SELECT 1
FROM basetable
WHERE basetable.row_id = tablex.survivor
AND basetable.par_ou_id = tablex.loser
)