Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-11-2013
lucho1981 lucho1981 is offline
Miembro
 
Registrado: abr 2006
Ubicación: Tucuman-Argentina
Posts: 44
Poder: 0
lucho1981 Va por buen camino
Exclamation Contar registros por fecha

Muy buenas amigos. Después de tanto tiempo, vuelvo por estos lados.
Tengo una db en mysql 5 con delphi 7.
En una tabla tengo un campo fecha (año, mes día) y desde delphi necesito hacer una consulta en la que me cuente la cantidad de registros que hay en un mes y año determinado.
El usuario seleccionara el mes (de 1 a 12) y el año (2012, 2013....etc) y necesito que me muestre la cantidad de registros que hay en un mes en particular.
Mi idea (no se si errada) es:
Código Delphi [-]
var
contador: integer;
begin
        cantidad:=0;
        dm.tarea.first;
        while not dm.tarea.eof do
               begin
                      //aca es donde no tengo en claro como comparar las fechas con mi mes y año. Seguramente será con un if donde irá incrementando mi contador, pero no se como hacerlo.
               end;
end;

Muchas gracias por su ayuda.
Responder Con Cita
  #2  
Antiguo 20-11-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Usa sql, algo similar a esto:
Ejemplo, mes 11:
Código SQL [-]
select count(*) from tabla where extract(month from fecha)= 11
Responder Con Cita
  #3  
Antiguo 20-11-2013
Avatar de TOPX
TOPX TOPX is offline
Miembro
 
Registrado: may 2008
Ubicación: Bogotá
Posts: 527
Poder: 16
TOPX Va camino a la fama
Buenas.

Mi idea es, que en la propiedad que tiene la sentencia sql de dm.tarea diga algo como:
Código SQL [-]
SELECT COUNT(*) as cantidad
FROM tabla
WHERE YEAR(fecha) = :anio_fecha
  AND MONTH(fecha) = :mes_fecha
Y luego, en Delphi asigna asigna los valores para los parámetros anio_fecha y mes_fecha.
-
__________________
"constructive mind, destructive thoughts"
Responder Con Cita
  #4  
Antiguo 20-11-2013
lucho1981 lucho1981 is offline
Miembro
 
Registrado: abr 2006
Ubicación: Tucuman-Argentina
Posts: 44
Poder: 0
lucho1981 Va por buen camino
muchas gracias

Gracias por sus comentarios.
Intenté hacer como me dijo TOPX y pasar por parámetros mes y año.

Me dió este error:
Project mantenimiento.exe raised exception class EZSQLException with message 'SQL Error: You have an error in your SQL syntax; check de manual that corresponds to your MySQL server version for the right syntax to use near '*) as cantidad FROM tarea WHERE YEAR (fecha)=2013 AND MONTH(fecha)=11' at line 1'. Proecess stopped. Use Step or Run to continue.


Con esta consulta me devolvería por parámetros el resultado o como lo tomo nuevamente en delphi (supongamos que quiero asignarlo a una variable).
Responder Con Cita
  #5  
Antiguo 20-11-2013
lucho1981 lucho1981 is offline
Miembro
 
Registrado: abr 2006
Ubicación: Tucuman-Argentina
Posts: 44
Poder: 0
lucho1981 Va por buen camino
Corregido el error

El error era únicamente un espacio demás.
Ahora la pregunta es, como hago para tomar el resultado de la consulta y asignarlo a una variable??

Muchas gracias

Última edición por lucho1981 fecha: 20-11-2013 a las 14:57:05.
Responder Con Cita
  #6  
Antiguo 20-11-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola lucho1981.

Un ejemplo para la consulta anterior:
Código Delphi [-]
...
var
  Cantidad: Integer;
begin
  with TuQuery do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT COUNT(*) AS CANTIDAD FROM TABLA')
    SQL.Add('WHERE YEAR(FECHA) = :ANIO_FECHA');
    SQL.Add('AND MONTH(FECHA) = :MES_FECHA');
    Open;
    Cantidad := FieldByName('CANTIDAD').AsInteger;
  end;
...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 20-11-2013
lucho1981 lucho1981 is offline
Miembro
 
Registrado: abr 2006
Ubicación: Tucuman-Argentina
Posts: 44
Poder: 0
lucho1981 Va por buen camino
Muchas gracias.

Muchas gracias. Me sirvió a la perfección.

Cita:
Empezado por ecfisa Ver Mensaje
Hola lucho1981.

Un ejemplo para la consulta anterior:
Código Delphi [-]
...
var
  Cantidad: Integer;
begin
  with TuQuery do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT COUNT(*) AS CANTIDAD FROM TABLA')
    SQL.Add('WHERE YEAR(FECHA) = :ANIO_FECHA');
    SQL.Add('AND MONTH(FECHA) = :MES_FECHA');
    Open;
    Cantidad := FieldByName('CANTIDAD').AsInteger;
  end;
...

Saludos
Responder Con Cita
Respuesta


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
Contar registros de un dataset martinlillo Conexión con bases de datos 6 29-09-2011 15:35:55
Contar Registros KAYO SQL 10 22-07-2010 19:47:43
Contar registros de una tabla sandra mendoza Conexión con bases de datos 4 14-10-2008 00:08:38
Contar registros en una columna dtomeysoto SQL 5 18-04-2008 21:32:52
Contar Registros Roilo SQL 10 18-07-2006 21:20:24


La franja horaria es GMT +2. Ahora son las 04:30:51.


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