Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Problemas de Consulta (https://www.clubdelphi.com/foros/showthread.php?t=75582)

elturu15 03-09-2011 21:39:38

Problemas de Consulta
 
Hola a todos....tengo un gran problema
TEngo una tabla echa en Acces de Asientos contables y tengo que obtener una lista de Asientos echos entre una determinada fecha...es decir Fecha desde y FEcha hasta y que me devuelva los asientos echos en esa fecha.
y el problema es que cuando hago la consulta me devuelve cualquier cosas..
mi consulta es la siguiente

Código SQL [-]
SELECT Numero, fecha, Renglon_asiento, leyenda, Numero_pdc, nombre_cta, debe, haber, Fecha_vto, Fecha_operacion, Numero_Comprobante
FROM Asientos, pdc
WHERE FEcha>=(''01/01/2011') and Fecha<=('30/12/2011) and (Numero>='1') and (Numero<='99') and (numero_cta=numero_pdc )
GROUP BY Numero, fecha, Renglon_asiento, leyenda, Numero_pdc, nombre_cta, debe, haber, Fecha_vto, Fecha_operacion, Numero_Comprobante;

TEngo asientos cargados con Fecha:
Asientos Fecha 01/09/2011 01/09/2011 01/09/2011 01/09/2011 01/09/2011 04/09/2011 04/09/2011 15/09/2011 15/09/2011 07/09/2011 07/09/2011 y con esa Consulta y esta tabla me devuelve todo pero si hago esta consulta :

Código SQL [-]
SELECT Numero, fecha, Renglon_asiento, leyenda, Numero_pdc, nombre_cta,  debe, haber, Fecha_vto, Fecha_operacion, Numero_Comprobante
FROM Asientos, pdc
WHERE FEcha>=(''02/01/2011') and Fecha<=('30/12/2011) and  (Numero>='1') and (Numero<='99') and (numero_cta=numero_pdc )
GROUP BY Numero, fecha, Renglon_asiento, leyenda, Numero_pdc,  nombre_cta, debe, haber, Fecha_vto, Fecha_operacion, Numero_Comprobante;

Le cambio nada mas que un dia a la segunda consulta, me devuelve todos menos los asientos echos el 01/09/2011....eso es un erros porque igua me tiene que devolver todo...algien sabe pq me da ese error?

Gracias

Casimiro Notevi 03-09-2011 21:48:57

Bueno, estás agrupando por varios campos, así que tendrás que explicarnos mejor la estructura de la tabla y lo que quieres conseguir, porque si lo que quieres es obtener todos los registros entre una fecha determianda, evidentemente, así no lo vas a conseguir, tendrás que hacer algo así como:

Código SQL [-]
query.close;
query.selectsql.text := 'select * from tabla where fecha between :fechainicial and :fechafinal';
query.params[0].asdatetime := '01.01.2010';
query.params[1].asdatetime := '31.12.2010';
query.execquery;

P.d. Por cierto, recuerda poner títulos descriptivos a tus preguntas, "Problema de consulta" no es ningún título descriptivo, recuerda leer nuestra guía de estilo, gracias.

.

elturu15 04-09-2011 15:09:05

No me Sale la Consulta en Acces
 
La tabla de asiento esta formnada por todos estos campos:
Numero, fecha, Renglon_asiento, leyenda, Numero_pdc,
nombre_cta, debe, haber, Fecha_vto, Fecha_operacion,
Numero_Comprobante

lo que descubri es que si la fecha es el primero de cada mes me lista todo....si pongo otra
fecha me lista cualquier y si pongo el dia 15 al 30 de cada mes
no me lista nada. y ademas si pongo que me liste del asiento 1 al 20 me lista el asiento dos 2, si pondo del asiento 1 al asiento 30
me lista el asiento 3....si pongo desde el asiento 1 al asiento 40 me
lista el 4 nada mas...y asi sucesivamente.

Gracias!!

Casimiro Notevi 04-09-2011 15:33:53

Veamos, si abres el ibexpert o el programa que uses de ese estilo, y pones:
Código SQL [-]
select * from tablaasiento where fecha between '01.01.2010' and '31.12.2010'
¿Te salen los asientos que deben salir?

oscarac 05-09-2011 03:40:28

creo que en access debes hacer asi

Código SQL [-]
 
Select * from tabla where fecha between #01/01/2010# and #31/12/2010#

oscarac 07-09-2011 15:29:43

Cita:

Empezado por elturu15 (Mensaje 410823)
La tabla de asiento esta formnada por todos estos campos:
Numero, fecha, Renglon_asiento, leyenda, Numero_pdc,
nombre_cta, debe, haber, Fecha_vto, Fecha_operacion,
Numero_Comprobante

lo que descubri es que si la fecha es el primero de cada mes me lista todo....si pongo otra
fecha me lista cualquier y si pongo el dia 15 al 30 de cada mes
no me lista nada. y ademas si pongo que me liste del asiento 1 al 20 me lista el asiento dos 2, si pondo del asiento 1 al asiento 30
me lista el asiento 3....si pongo desde el asiento 1 al asiento 40 me
lista el 4 nada mas...y asi sucesivamente.

Gracias!!

me parece que el access tiene esa particularidad....

a no ser que el campo asiento sea caracter y entonces no lo "jale" como valor nominal sino mas bien esta comparando cadenas


La franja horaria es GMT +2. Ahora son las 19:02:09.

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