【发布时间】:2017-04-07 14:20:11
【问题描述】:
我在几个表中存在以下数据差异,需要使用 sql 中的更新查询进行更正
主表(取表 A)表包含相同产品的 2 个主键值,如下所示,
------------------
PRRFNBR|PRNBR
-------|--------
XXXX |123
YYYY |123
----------------
这些参考键在下面的 2 个表中使用,
表 B:
----------------------
SUPRFNBR |SUSPRNBR
---------------------
XXXX | 234
-------------------
表 C:
-------------------
SEPRFNBR | SESUPRNBR
-------------------
YYYY | 435
--------------------
现在我需要比较所有这 3 个表,并使用表 B 中可用的引用键 (SUPRFNBR) 更新表 C 中的 SEPRFNBR(如果相同的 PRNBR 有 2 个,则需要在表 C 中更新引用键 XXXX表 A 中的主键值)
【问题讨论】:
-
你能解释一下逻辑吗?到目前为止,我认为您希望将表 C 更新为表 A 和 B 的大多数 - 最后一句是什么意思?更多详细信息或示例会有所帮助
-
嗨迈克尔,逻辑是这样工作的,当我在表 C 中插入一条记录时,它使用与表 A 不同的参考编号,而不是表 B 中使用的相同参考编号(例如,如果 xxxx 用于表 b 然后程序使用表 C 中的 YYYY 而不是 XXXX。我现在无法更改插入函数,因为活动订单被映射到两个参考号。因此,作为一种解决方法,我需要更新表 C 中的记录如果给定行在表 A 中具有超过 2 个参考编号,则在表 B (XXXX) 中使用相同的参考编号。
-
你的意思是在表C中你想把YYYY改成XXXX?
-
Yes dan,如果表 A 中有 2 个条目,则表 C 中的值需要从 YYYY 更改为 XXXX
-
我可以在 shell 中使用循环函数得到结果吗?,知道吗?