Подзапрос в вашем утверждении неверен. Вы отключили предложение WHERE
или FIRST
, и теперь оно возвращает несколько значений, когда это не должно быть.
Вы в основном пытаетесь сказать, что PREVIOUS_DAY_CLOSE
должно быть несколькими значениями одновременно. Я предполагаю, что вы исключили предложение WHERE
для своего подвыбора, которое связывает результаты этого подзапроса с конкретной строкой, которую вы пытаетесь обновить. Что-то вроде (обратите внимание на жирную линию):
UPDATE BI_BSELATEST_LATESTPRICESTEST
SET PREVIOUS_DAY_CLOSE =
(SELECT DISTINCT aa.DLYPRICE_CLOSE
FROM DATAFEED_EQTY.FEED_DLYPRICE aa ,
(
SELECT a.sc_code , MAX(a.DLYPRICE_DATE) as max_date
from DATAFEED_EQTY.FEED_DLYPRICE a,BI_BSELATEST_LATESTPRICES b
where a.SC_CODE = b.SC_CODE
and a.ST_EXCHNG = 'BSE'
and a.DLYPRICE_DATE < b.upd_time
group by a.sc_code
) bb
WHERE aa.SC_CODE = bb.sc_code
and aa.DLYPRICE_DATE = max_date
AND bb.sc_code = BI_BSELATEST_LATESTPRICESTEST.sc_code
)
Хотя, если честно, я не совсем уверен, что вы пытаетесь сделать с этим запросом.