gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 13:41:41 27 4
gpt4 key购买 nike

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

要更新的表将具有多个记录,这些记录需要从另一个表的1个匹配项开始更新。

例如,我有一个一百万行的销售历史记录文件。那百万条记录具有大约40,000个不同的SKU代码,每行都有一个日期和时间戳。每个sku中都将有多个记录。

我添加了一个新字段,称为MATCOST( Material 成本)。

我还有另一个包含SKU和MATCOST的表。

因此,我想在表1中的每一行上用表2中的相应SKU的MATCOST标记。如果不是一对一的关系,我似乎无法实现。

这是我尝试过的:

update 
aulsprx3/cogtest2
set
matcost = (select Matcost from queryfiles/coskitscog where
aulsprx3/cogtest2.item99 = queryfiles/coskitscog.ITEM )
where
aulsprx3/cogtest2.item99=queryfiles/coskitscog.ITEM

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

有任何想法吗 ?

最亲切的问候

亚当

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

我找不到匹配倍数的方法。在该示例中,我们将必须使用3条SQL语句并仅指定商品代码。但是在现场我有大约40,000个商品代码和超过一百万个销售数据记录需要更新。如果SQL无法做到这一点,我想我不得不尝试在RPG程序中编写它,但那暂时还远远超出我的范围。

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

最佳答案

好的,这是有效的最终SQL语句。 (实际上有3个值需要更新)

    UPDATE atst2f2/SAP20 ct                                  
SET VAL520 = (SELECT cs.MATCOST
FROM queryfiles/coskitscog cs
WHERE cs.ITEM = ct.pnum20),
VAL620 = (SELECT cs.LABCOST
FROM queryfiles/coskitscog cs
WHERE cs.ITEM = ct.pnum20),
VAL720 = (SELECT cs.OVRCOST
FROM queryfiles/coskitscog cs
WHERE cs.ITEM = ct.pnum20),
WHERE ct.pnum20 IN (SELECT cs.ITEM
FROM queryfiles/coskitscog cs)

关于sql - 从另一个表中的另一个字段更新表中的1个字段(OS400,不是一对一关系),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12862676/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com