Ver Mensaje Individual
  #5  
Antiguo 25-09-2007
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Reputación: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Por lo que entiendo quieres poner - en todos los registros que cumplan resultadocalifresp=0 and resultadocalifhab=0 and totalevalu=0 - en el campo resultadocalifresp de la tabla resultadoevalu un único valor que sacas de una subconsulta.

Con este update pones un único valor a cada regisro. Sería como hacer lo siguiente:
Código SQL [-]
var_temporal = select sum(cc.calificacion) /max(codigoresponsabilidad) as totalcaliresp
from personal p 
inner join  calificacionresponsabilidadjefe  cc on cc.cedula=p.cedula 
group by cc.fechaevaluacion,p.cedula

update resultadoevalu
set resultadocalifresp=var_temporal
where resultadocalifresp=0 and resultadocalifhab=0 and totalevalu=0

Si la subconsulta te arroja mas de un valor, debes elegir cual vas a usar para hacer el update.
Tienes varias opciones min, max, avg, fist ...
Código SQL [-]
update resultadoevalu
set resultadocalifresp=(
select min sum(cc.calificacion) /max(codigoresponsabilidad) as totalcaliresp
from personal p 
inner join  calificacionresponsabilidadjefe  cc on cc.cedula=p.cedula 
group by cc.fechaevaluacion,p.cedula)
where resultadocalifresp=0 and resultadocalifhab=0 and totalevalu=0

Si no es eso lo que quieres, explícanos la situación un poco más detalladamente.
Responder Con Cita