sql >> Base de Datos >  >> RDS >> Oracle

Consulta que devuelve:ORA-01427 Subconsulta de una sola fila que devuelve más de una fila

¿Podría intentar con lo siguiente,

He usado coalesce en caso de que no haya ninguna coincidencia para la columna queue lo considerará como nulo y valorará 2 se toma en su lugar.

update product pd
set    pd.age = case
                   when pd.exittime != null then
                    (sysdate - pd.exittime)
                   else
                    coalesce((select (sysdate - pd.entrytime)
                                from department dp
                                where pd.queue = dp.queue
                                  and pd.id = dp.id)
                            ,2)
                end
where  pd.id > 1
and    pd.status in ('1','7','2','5')
and    exists (select 1
                 from department dp
                where pd.id = dp.id
                  and pd.currentstatus = dp.currentstatus
                  and pd.activity = dp.activity);