【发布时间】:2017-11-15 23:32:31
【问题描述】:
我有一个场景是从数据库中的多条记录中提取几条记录。 以下来源记录与一位帐户持有人有关。
PrimaryOrSecondary Duplicate_Account_ID Account_ID START_DATE END_DATE
------------------ -------------------- ------------ ---------- --------
Primary 1000 1000 26/05/2017 NULL
Primary 1000 1000 10/03/2014 25/05/2017
Secondary 2000 1000 26/05/2017 NULL
Secondary 3000 1000 10/03/2014 25/05/2017
在这 4 条记录中,我必须应用以下规则才能获得一条目标记录。
如果 Duplicate_Account_ID=Account_ID(那么它是 PRIMARY 记录)并且如果它的 END_DATE 为 NULL,则在目标中填充该记录,不要再看了。
如果步骤 1 中的 END_DATE 为 NULL,则转到 Duplicate_Account_IDAccount_ID 的辅助记录,查看是否有任何记录具有 NULL END_DATE。如果找到,则在目标中填充该记录。
如果在步骤 2 中未找到记录,则返回主记录并获取具有最大 START_DATE 的记录并在目标中填充该记录。
最终我需要源表中这 4 条记录中的一条记录。
任何帮助请。
【问题讨论】:
-
“填充该记录”是什么意思?用什么更新它?不清楚你在问什么。更新后表格中的值应该是什么样子?
-
请参阅更新。谢谢。
-
您使用的是哪个 DBMS? SQL 服务器? MYSQL?
-
SQL 服务器。谢谢。
标签: sql sql-server etl