此问题已多次发布,但我无法使其正常运行。我尝试了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列。有可能吗?
注意: - 帐户列已填充了值。
答案 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;