根据第二个表中的条件更新表

问题描述 投票:1回答:1

我试图根据另一个表中的选择标准更新一个表。我的SQL是

update
  hshed
set
  oaeiin = 'Y',
  OAEIND = '170201'
from
  hshed
  join cusms on oacono = cmcono
  and oacsno = cmcsno
where
  cmtpid like 'OB10%'
  and oainvd > 180120
  and oaeiin = 'N'

但是,我收到了一个错误

 Keyword FROM not expected. Valid tokens: USE SKIP WAIT WITH WHERE. 

我不知道如何根据第二个表中的条件更新表,或者如何使用连接。这是在DB2数据库中使用SQL。

我试图寻找一个没有成功的解决方案。

任何帮助表示赞赏。

db2 sql-update
1个回答
1
投票

我认为这里的主要问题是DB2不支持您正在使用的更新连接语法。一种可能的解决方法可能是使用EXISTS子句来处理您想要的相同逻辑:

UPDATE
    hshed
SET
    oaeiin = 'Y',
    OAEIND = '170201'
WHERE
    EXISTS (SELECT 1 FROM cusms WHERE oacono = cmcono) AND
    EXISTS (SELECT 1 FROM cusms WHERE oacsno = cmcsno) AND
    cmtpid LIKE 'OB10%' AND
    oainvd > 180120 AND
    oaeiin = 'N';

Here is a link到一个很好的Stack Overflow问题一般讨论这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.