Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #7  
Antiguo 26-09-2007
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.806
Poder: 22
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
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); /*aqui debes poner lo que corresponda*/
declare variable temporal double precision; /*supongo que no es entero porque sale de una division*/
begin
   /*Recorro todos los resultados de la subconsulta y los meto en temporal*/
   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
      /*inicializo cedula como vacio*/
      cedula = '';
      /*selecciono lo primera cedula a actualizar*/
      /*tener en cuenta el orden*/
      select first cedula from resultadoevalu
      where resultadocalifresp=0 and resultadocalifhab=0 and totalevalu=0
      order by cedula
      into :cedula;
      /*Si encuentro una cedula que cumpla la condicion hago el update*/
      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?

Última edición por duilioisola fecha: 26-09-2007 a las 16:09:13.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
error, el índice o la clave principal no puede tener un valor null locorez Varios 3 15-12-2006 04:40:42
Cuantos <Script></Script> deben haber en un <Body>? Deiv HTML, Javascript y otros 9 07-12-2006 01:27:50
Error en OnCalcFields con valor retornado de un SELECT SUM() Cabanyaler Conexión con bases de datos 1 17-10-2006 11:44:22
Error pasando un valor a unDbgrid jandres Varios 1 17-06-2006 01:26:25
Error: El valor EOF o BOF es True o el actuañ registro de eliminó lavtaro Conexión con bases de datos 2 30-06-2003 11:39:44


La franja horaria es GMT +2. Ahora son las 00:24:38.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi