小编ADA*_*ALL的帖子

从另一个表中的另一个字段更新表中的1个字段(OS400,而不是1到1的关系)

我试图从另一个表中的另一个字段更新表中的字段.

正在更新的表将具有多个记录,这些记录需要从另一个表中的1个匹配进行更新.

例如,我有一百万行销售历史文件.这些百万条记录有大约40,000个不同的sku代码,每行有一个日期和时间戳.每个sku都会有多个记录.

我添加了一个名为MATCOST的新字段(材料成本).

我有第二个包含SKU和MATCOST的表.

所以我想用表2中相应的SKU的MATCOST标记表1中的每一行.当它不是一对一的关系时,我似乎无法实现这一点.

这是我尝试过的:

update 
  aulsprx3/cogtest2 
set 
  matcost = (select Matcost from queryfiles/coskitscog where 
  aulsprx3/cogtest2.item99 = queryfiles/coskitscog.ITEM ) 
where 
  aulsprx3/cogtest2.item99=queryfiles/coskitscog.ITEM
Run Code Online (Sandbox Code Playgroud)

但这会导致SQL错误:列限定符或表COSKITSCOG未定义并突出显示最后一个对queryfiles/coskitscog.Item的引用中的q

有任何想法吗 ?

最亲切的问候

亚当

更新:这是我的表原则上的样子.1表包含销售数据,另一个包含销售商品的MATCOSTS.我需要使用COSKITCOG表中的数据更新Sales Data表(COGTEST2).我不能使用coalesce语句,因为它不是1对1关系,我使用的大多数选择函数都会导致多次选择的错误.唯一匹配的字段是Item = Item99

我找不到匹配多个的方法.在示例中,我们必须使用3个SQL语句,并只指定项目代码.但在现场我有大约40,000个物品代码和超过一百万个销售数据记录要更新.如果SQL不这样做,我想我必须尝试在RPG程序中编写它,但这暂时超出了我的范围.

感谢您的任何帮助,您可以提供.

表格示例

sql db2 sql-update ibm-midrange

6
推荐指数
2
解决办法
4万
查看次数

标签 统计

db2 ×1

ibm-midrange ×1

sql ×1

sql-update ×1