我目前正在处理两张桌子。
一个表在名为 PRIMARY_TABLE 的表中包含一组列,如 ID、NAME、AGE、TEAM、SCHOOL 等
而且我还有一个名为 SECONDARY_TABLE 的审计表,它记录上述值随时间的更新。
我在此表中有 ATTRIBUTE、PREV_VALUES 和 RECORD_ID 列。它具有以下属性:
- RECORD_ID 列对应于 PRIMARY_TABLE 的 ID 列
- ATTRIBUTE 列将存储正在更改的 PRIMARY_TABLE 的列。
例如,如果我有
132 NIKO 18 LANCERS JESUIT
143 KEENAN 25 RAIDERS ROCKLAND
在我的第一张桌子上
132 'AGE' 22
132 'NAME' STEVAN
在我的第二个,
然后我想要一个组合表
132 NIKO 18 LANCERS JESUIT
132 NIKO 22 LANCERS JESUIT
132 STEVAN 22 LANCERS JESUIT
143 KEENAN 25 RAIDERS ROCKLAND .
我很难解决的问题是保留未受影响行中的值。由于这个原因,我似乎将两个表连接在一起的任何想法都行不通。
有什么想法吗?我认为唯一的解决方案是为此创建一个存储过程。如果您需要澄清,也请告诉我。
编辑
还有一件事...
这是另一件事。审计表还有一个“time_of_change”列。如果多行对于一个 ID 具有相同的更改时间,那么在我们的结果表中不应有多行,而应该只有一行。
例如,如果我们的审计表有
132 'AGE' 22 1:00
132 'NAME' STEVAN 1:00
然后,而不是
132 STEVAN 18 LANCERS JESUIT
132 NIKO 22 LANCERS JESUIT
添加后,应该只添加一行
132 STEVAN 22 LANCERS JESUIT
.
我也想不出任何可能的方法来做到这一点。