Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-12-2006
Lucas_diaz1810 Lucas_diaz1810 is offline
Miembro
 
Registrado: nov 2006
Posts: 12
Poder: 0
Lucas_diaz1810 Va por buen camino
Unhappy Recorrer Tabla, contar registro repetidos y escribir totales en otra Tabla

Saludos y bendiciones del Cielo para todos.

El asunto es el siguiente:

Tengo una tabla dbf conlas ausencias de los empleados de una quincena, esto significa que se repiten los que faltan mas de una jornada o dia de trabajo. Me gustaria poder contar las cantidades de ausencias de cada uno y ponerlo en una tabla diferente.

Las Tablas van mas o menos asi:

Ausencias
Codbar
codigoEmp
fecha (esto es las fecha en que falta a su trabajo)

AusContadas
Codbar
CodigoEmp
TotalFaltas

Si alguien puede ayudarme se lo agradeceria mucho, pues es urgente.

Att. Lucas
Responder Con Cita
  #2  
Antiguo 25-12-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Mas que recorrer las tablas en delphi, usaremos un Tquery con su sentencia sql tal que así:

Código SQL [-]
select codigoEmp, count(fecha) from Ausencias
where codigoEmp = :codigo and (fecha between  :fechaini and fechaFin)
Porque supongo que querrás pedirlo entre dos fechas determinadas. Ya en Delphi:
Código Delphi [-]

// query1 tiene el sql anterior
query1.parambyname('codigo').Asinteger := 32;
query1.parambyname('fechaini').Asdate := datetimepicker1.date;
query1.parambyname('fechaFin').Asdate := datetimepicker1.date;
query1.Open;
if not query1.IsEmpty then
begin 
  query2.sql.text := 'update ausContadas set TotalFaltas = :totales where codigoEmp = :codigo';
  query2.parambyname('codigo').AsInteger := 32;
  query2.parambyname('totales').AsInteger := query1.Fields[1].Asinteger;
  query2.ExecSql;
end;


No sé si dbf podría hacer algo así, pruébalo ya que sería mejor:
Código SQL [-]
update ausContadas set TotalFaltas = 
                  ( 
                  select count(fecha) from Ausencias 
                  where codigoEmp = :codigo and (fecha between  :fechaini and fechaFin)
                  )
where codigoEmp = :codigo

En AusContadas, no entiendo como se pueden almacenar las faltas de todos los meses de un mismo empleado, por ejemplo.


Saludos.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 25-12-2006 a las 13:08:00.
Responder Con Cita
Respuesta



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
Dbgrid para insertar en una tabla pero cogiendo datos de otra tabla taru MySQL 1 27-07-2006 15:36:12
Utilizar un DBGrid para leer de una tabla y escribir en otra taru MySQL 0 25-07-2006 18:31:06
datos repetidos en tabla marceloalegre SQL 3 03-08-2005 20:37:47
Como Copiar Un Mismo Registro De Una Tabla A Otra En Delphi NaZi_DjInN Tablas planas 2 30-09-2004 22:13:17
¿Una tabla sólo puede estar unida externamente como máximo a otra tabla ? febito Oracle 0 22-06-2004 18:12:16


La franja horaria es GMT +2. Ahora son las 00:49:45.


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