En este caso, lo único que se me ocurre es hacer un procedimiento...
Código:
95,100,100,62,100,93,62,25,75...
a 65 95 75 78
b 75 0 0 0
c 40 63 75 59
d 75 0 0 0
e 80 0 0 0
pasa a -->
a 65 95 75 78
b 75 95 0 0
c 40 63 75 59
d 75 100 0 0
e 80 100 0 0
Código SQL
[-]
procedure rellenar_resultadoevalu
as
declare variable cedula varchar(1);
declare variable temporal double precision;
begin
for select 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
into :temporal do
begin
cedula = '';
select first cedula from resultadoevalu
where resultadocalifresp=0 and resultadocalifhab=0 and totalevalu=0
order by cedula
into :cedula;
if (cedula <> '') then
update resultadoevalu
set resultadocalifresp=temporal
where cedula=:cedula;
end
end
y luego
Código SQL
[-]
execute procedure rellenar_resultadoevalu;
Nota: Qué pasa con los valores que sobran en la subconsulta si no se encuentran suficientes registros que cumplan la condición en resultadoevalu?
95,100,100,
62,100,93,62,25,75,...
Nota 2: En qué orden deben entrar los valores de la subconsulta en la tabla resultadoevalu?