Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-12-2005
Avatar de alcides
alcides alcides is offline
Miembro
 
Registrado: dic 2003
Ubicación: Republica Dominicana
Posts: 204
Poder: 21
alcides Va por buen camino
Una pequeña duda

hola a todos

trabajo en delphi 7 y mis tablas estan access.

tengo este qry y resulta que introduzco por medio a dos edit la fecha inicial
01/02/2005 y la fecha final 28/02/2005

y en el resultado me incluye los datos de enero.


Código PHP:
SELECT MID(CUENTA,1,5),SUM(DEBITO) AS TOTAL_DEBITO,SUM(CREDITO) AS TOTAL_CREDITO 
FROM     DETALLE 
WHERE 
(FECHA_TRANSACION BETWEEN :PFECHA_DESDE AND :PFECHA_HASTA)
AND       
MID(CUENTA,1,5) = :PCUENTA
GROUP BY MID
(CUENTA,1,5); 
si por favor me pueden dar una mano.

Gracias mil

Alcides
Rep. Dom.
Responder Con Cita
  #2  
Antiguo 12-12-2005
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 21
AGAG4 Va por buen camino
Checa esto....

Cita:
Empezado por alcides
hola a todos

trabajo en delphi 7 y mis tablas estan access.

tengo este qry y resulta que introduzco por medio a dos edit la fecha inicial
01/02/2005 y la fecha final 28/02/2005

y en el resultado me incluye los datos de enero.


Código PHP:
SELECT MID(CUENTA,1,5),SUM(DEBITO) AS TOTAL_DEBITO,SUM(CREDITO) AS TOTAL_CREDITO 
FROM DETALLE 
WHERE 
(FECHA_TRANSACION BETWEEN :PFECHA_DESDE AND :PFECHA_HASTA)
AND 
MID(CUENTA,1,5) = :PCUENTA
GROUP BY MID
(CUENTA,1,5); 
si por favor me pueden dar una mano.

Gracias mil

Alcides
Rep. Dom.
Lo que ha de estar pasando es que de seguro en Acces tienes que especificarle el Mes/Dia/Año, prueba con esto.

Saludos.
Responder Con Cita
  #3  
Antiguo 13-12-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos
Cita:
Empezado por AGAG4
Lo que ha de estar pasando es que de seguro en Acces tienes que especificarle el Mes/Dia/Año, prueba con esto.
Dificilmente sea eso, si...
Cita:
Empezado por alcide
01/02/2005 y la fecha final 28/02/2005
hace esto. La 2da fecha tiene el formato dd/mm/yyyy por lo que asumo que el 1ro debe estar asi.

Es extra~o este problema, no deberia mostra "Enero" para nada. Yo aconsejaria a alcide en hacer pruebas, estableciendo un rango mas corto como 01/02/2005 a 10/02/2005 y asi sucesivamente.

Edt: Que componente usas para asignar la fecha al parametro?
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #4  
Antiguo 13-12-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Quizas tenga que pasarle las fechas en formato mm/dd/yyyy que es el formato para casi todos los motores de datos.

Al pasar 01/02/2005 esto casa tanto con dd/mm/yyyy como con mm/dd/yyyy, por ahí empiezan los problemas. En principio, algunos motores de BBDD primero intentan casar la fecha con formato mm/dd y si no entra, como por ejemplo 28/02, entonces, y solo entonces, la hacen casar con el formato dd/mm

Cuando se usa parámetros, delphi automáticamente resuelve el problema, así que me suena a algún conflicto entre la fecha establecida en windows o bien el controlador de access.

Dicho de otra forma, no sé por donde coger el problema, lo único que se me ocurre es:
Código Delphi [-]
 'where fecha between' + formatdatetime('mm/dd/yyyy', date1)+ ' and ' ....
que siempre debe funcionar, mientras no se cambie el motor de bases de datos, o éste se actualice.

saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #5  
Antiguo 14-12-2005
FOURIER FOURIER is offline
Miembro
 
Registrado: dic 2005
Posts: 40
Poder: 0
FOURIER Va por buen camino
SELECT MID(CUENTA,1,5),SUM(DEBITO) AS TOTAL_DEBITO,SUM(CREDITO) AS TOTAL_CREDITO
FROM DETALLE
WHERE
(FECHA_TRANSACION BETWEEN :PFECHA_DESDE AND :PFECHA_HASTA
)
AND
MID(CUENTA,1,5) = :
PCUENTA
GROUP BY MID
(CUENTA,1,5
);


//ESA CONSULTA ES EQUIVALENTE A ESTO:

SELECT MID(CUENTA,1,5),SUM(DEBITO) AS TOTAL_DEBITO,SUM(CREDITO) AS TOTAL_CREDITO
FROM DETALLE
WHERE
(FECHA_TRANSACION>= :PFECHA_DESDE AND FECHA_TRANSACION<=:PFECHA_HASTA
)
AND
MID(CUENTA,1,5) = :
PCUENTA
GROUP BY MID
(CUENTA,1,5
);

// LO QUE PASA ES QUE EN ACCESS CUANDO COMPARAS FECHAS DEBES HACER LA CONVERCIÓN AL MENOS QUE COMPARES CON OTRO CAMPO QUE TAMBIEN ES FECHA ENTONCES ESO ES EQUIVALENTE A PONER LO SIGUIENTE

SELECT MID(CUENTA,1,5),SUM(DEBITO) AS TOTAL_DEBITO,SUM(CREDITO) AS TOTAL_CREDITO
FROM DETALLE
WHERE
(FECHA_TRANSACION>= CDATE(:PFECHA_DESDE) AND FECHA_TRANSACION<=CDATE(:PFECHA_HASTA)
)
AND
MID(CUENTA,1,5) = :
PCUENTA
GROUP BY MID
(CUENTA,1,5
);

//CON CDATE() CONVIERTES LOS VALORES A DATE Y YA PODRÁS COMPARARLOS... ESPERO TE SIRVA
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


La franja horaria es GMT +2. Ahora son las 00:56:42.


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