2014-12-03 91 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