Ver Mensaje Individual
  #2  
Antiguo 09-05-2011
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.735
Reputación: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Parece que en TODOS los registro de la tabla aux_infplanta estás poniendo el mismo resultado.
Verifica si esto es realmente lo que quieres.

Segundo "multiple rows...".
Esto se refiere que que estas tratando de poner varios registros dentro de un lugar donde entra solo uno.

Mi sospecha es que el SELECT devuelve más de un resultado.
Código SQL [-]
select (art_planta.m3xhora * (infplanta.hmetro_termino - infplanta.hmetro_inicio))
from  infplanta,  art_planta, aux_infplanta
where infplanta.infnro = aux_infplanta.numinf
and   aux_infplanta.codart = art_planta.codart
and   infplanta.planta = art_planta.codplanta
and   infplanta.fecha > (:FECHA)

Prueba a hacer el select solo y lo verás.

Normalmente para solucionar este problema utilizarías algo así como select sum(campo) from ...

Código SQL [-]
update aux_infplanta
set aux_infplanta.m3producidos =
  (select SUM( (art_planta.m3xhora * (infplanta.hmetro_termino - infplanta.hmetro_inicio)) )
   from  infplanta,  art_planta, aux_infplanta
   where infplanta.infnro = aux_infplanta.numinf
   and   aux_infplanta.codart = art_planta.codart
   and   infplanta.planta = art_planta.codplanta
   and   infplanta.fecha > (:FECHA)
  )
Responder Con Cita