2014-12-03 93 views
-1

我需要使用select子查询的结果更新一个表中的列(并且它们最终应该不同)。但是当我这样做,我得到'ORA-01427:单行子查询返回多个行查询'错误。使用select子查询执行更新查询返回ora-01427错误

你能看看我看到的是什么吗? (我可以忽略所有我知道的事情)

UPDATE AIRMODEL_NETWORK_SUMMARY ans 
SET ANS.NBR_RETURNS = ( 
    SELECT SUM(RQ.RETURN_QTY) 
    FROM RETURN_QTY RQ JOIN AIRMODEL_NETWORK_SUMMARY ANS ON RQ.LOC_ID = ANS.LOC_ID 
    WHERE RQ.FSCL_YR_NUM  = ans.FSCL_YR_NUM 
    AND RQ.FSCL_WK_IN_YR_NUM = 
     ans.FSCL_WK_IN_YR_NUM 
    GROUP BY ANS.LOC_ID, 
     ans.FSCL_WK_IN_YR_NUM, 
     ANS.FSCL_YR_NUM 
     ); 
+0

我是能够通过使用下面的示例 'UPDATE table1的T1 SET(姓名,降序)=解决这个问题(SELECT t2.name,t2.desc FROM表2 T2 WHERE t1.id = t2.id ) WHERE EXISTS( SELECT 1 FROM table2 t2 WHERE t1.id = t2.id)' 由 – 2014-12-03 05:09:56

回答

1

我认为你的内部查询与你试图更新的表格没有很好的关联。请看这里Oracle SQL: Update a table with data from another table。您应该添加某种where条件,将您尝试更新的行与由内部语句计算的值关联起来。

+0

提供的答案好吧。谢谢。我无法从我的搜索结果中找到我需要的内容(也许我已经看过了)。我没有依据。谢谢。 – 2014-12-03 03:38:47