Oracle - 更新具有特定值

时间:2018-04-14 22:09:38

标签: oracle

此问题已多次发布,但我无法使其正常运行。我尝试了Update column to the COUNT of rows for specific values in another column. SQL Server中提到的方法。它给了我 SQLException:java.sql.SQLException:ORA-01427:单行子查询返回多行错误,不知道我能做什么。

以下是我的问题

UPDATE dataTable
 SET ACCX = (select b.cnt
               from dataTable a 
                 join
                (SELECT Account,
                       COUNT(1) cnt 
                  FROM  dataTable
                  GROUP BY Account) b 
                  on a.Account=b.Account)
        ,ACCR = 15481
        ,ACCF = 3
  WHERE ID = 1625

我只有访问权限&可以更改为粗体部分,因为查询的其余部分是由工具生成的,我无法更改它&我必须使用Account列中的值计数来更新ACCX列。有可能吗?

注意: - 帐户列已填充了值。

1 个答案:

答案 0 :(得分:1)

您无法关注该查询,因为它适用于sqlserver而非oracle。它在oracle中更简单,并且不需要连接到它自己。

此更新仅根据数据表中的帐号数量设置id 1625的计数。看这里的演示; http://sqlfiddle.com/#!4/d154c/1

update dataTable a
set ACCR = 15481, 
    ACCF = 3, 
    a.ACCX = (
        select COUNT(*)
        from dataTable b
        where b.Account=a.Account)
WHERE a.ID = 1625;