我試圖運行更新查詢。
表PS_Z_TREND_NOW_TBL包含DESCR254和URLS列。
我正在使用PSPRSMDEFN,它有很多列,包括PORTAL_LABEL和URLS。我想運行下面的更新查詢來更新PS_Z_TREND_NOW_TBL.URLS列,其中值匹配PS_Z_TREND_NOW_TBL.DESCR254和PSPRSMDEFN.URLS。我需要在下面的查詢中進行更改/添加以完成此項工作?當我嘗試運行下面的查詢它給出了一個錯誤,指出,「單行子查詢返回多行」ORACLE SQL UPDATE問題
UPDATE PS_Z_TREND_NOW_TBL now
SET now.URLS = t.URLS
WHERE now.DESCR254 IN(
select t.PORTAL_URLTEXT from PSPRSMDEFN t, PS_Z_TREND_NOW_TBL trd
where t.VERSION =
(select MIN(t2.VERSION)
from PSPRSMDEFN t2
WHERE t2.PORTAL_LABEL = trd.DESCR254
AND t2.PORTAL_REFTYPE = 'C'
group by t2.PORTAL_LABEL
)
AND t.PORTAL_LABEL = trd.DESCR254
AND t.PORTAL_REFTYPE = 'C'
and t.PORTAL_NAME = 'EMPLOYEE'
)
這從上面返回多行數據查詢的一部分。它返回的值與PS_Z_TREND_NOW_TBL.DESCR254中的值相同。我想將這些值與查詢中返回的內容進行匹配以更新URLS字段。
select t.PORTAL_URLTEXT from PSPRSMDEFN t, PS_Z_TREND_NOW_TBL trd
where t.VERSION =
(select MIN(t2.VERSION)
from PSPRSMDEFN t2
WHERE t2.PORTAL_LABEL = trd.DESCR254
AND t2.PORTAL_REFTYPE = 'C'
group by t2.PORTAL_LABEL
)
AND t.PORTAL_LABEL = trd.DESCR254
AND t.PORTAL_REFTYPE = 'C'
and t.PORTAL_NAME = 'EMPLOYEE'
這不是問題自我解釋嗎?在進行更新時,只能將行值設置爲單個值,而不是查詢返回的多個值。您需要創建邏輯以使底部選擇語句返回一行,而不是......您的問題與您的數據有關,代碼 – Twelfth 2014-09-26 18:18:59
中的任何內容都沒有幫助。那麼我將如何更改查詢呢? – user3586248 2014-09-26 18:21:56
嘗試't.version in'而不是't.version =' – Aramillo 2014-09-26 18:23:25