Page 1 of 2

SIGO con Query con ADS - SOLUCIONADO

Posted: Sun May 20, 2012 10:06 pm
by rolando
Buenas tardes,

Tengo instalado ADS y, hasta ahora, lo uso para hacer consultas en DBF's sobre campos de caracteres y funciona bien, por ej.

Code: Select all

Select TALON, NOMBRE, DIRECCION, LOCALIDAD from TRABAJOS where NOMBRE like '%JOSE%'
La cuestión es que necesito hacer consultas por fechas, es decir sobre campos tipo date y probé haciendo:

Code: Select all

Select TALON, NOMBRE, DIRECCION, LOCALIDAD from TRABAJOS where FECHA like '%  /  /    %'
y haciendo:

Code: Select all

Select TALON, NOMBRE, DIRECCION, LOCALIDAD from TRABAJOS where FECHA >= '%11/11/2010%' and FECHA <= '%20/02/2012%'
Pero no funciona. Obviamente le estoy errando en la sintáxis. Espero ayuda. Gracias.

Rolando :roll:

Re: Query con ADS - ayuda

Posted: Mon May 21, 2012 12:38 am
by Marcelo Via Giglio
Hola,

primero defines como quieres que ADS maneje las fechas

Code: Select all

ADSSETDATEFORMAT("DD/MM/YYYY")
luego intenta como lo estuviste haciendo

saludos

Marcelo

Re: Query con ADS - ayuda

Posted: Mon May 21, 2012 9:37 am
by fgondi
Prueba asi:

Code: Select all

Select TALON, NOMBRE, DIRECCION, LOCALIDAD from TRABAJOS where FECHA >= '2010-11-11' and FECHA <= '2012-02-20'

Re: Query con ADS - ayuda

Posted: Mon May 21, 2012 1:36 pm
by rolando
Gracias a ambos por responder.

Marcelo, hice lo que propones y funcionó bién para buscar una fecha, ej:

Code: Select all

Select TALON, NOMBRE, DIRECCION, LOCALIDAD from TRABAJOS where FECHA = '10/10/2011'
Pero cuando quiero buscar todos los que la fecha esté vacía, no funciona, hago así:

Code: Select all

Select TALON, NOMBRE, DIRECCION, LOCALIDAD from TRABAJOS where FECHA = '  /  /    '
Y no funciona. ¿Cómo debería hacer para localizar por fechas vacías?, gracias.

Rolando :roll:

Re: Query con ADS - ayuda

Posted: Mon May 21, 2012 1:38 pm
by compubrion
Saludos !

Intenta de esta forma

Select TALON, NOMBRE, DIRECCION, LOCALIDAD from TRABAJOS where FECHA BEETWEN '2010-11-11' AND FECHA '2012-02-20'

Re: Query con ADS - ayuda

Posted: Mon May 21, 2012 1:51 pm
by rolando
Cuando la fecha está completa no hay problemas, como ya dije, la encuentra bien.

El problema está cuando quiero crear un array buscando todos los registros cuyo campo "FECHA" no tenga ninguna fecha registrada, cuando esté vacío. Por esto intenté sin éxito

Code: Select all

Select TALON, NOMBRE, DIRECCION, LOCALIDAD from TRABAJOS where FECHA = '  /  /    '
Necesitaría la forma de buscar campos de date vacíos.

Gracias.

Rolando :roll:

Re: Query con ADS - ayuda

Posted: Mon May 21, 2012 4:01 pm
by Marcelo Via Giglio
Hola,

eso debería ser fácil así

Code: Select all

select *
from trabajos
where fecha is null
 
saludos

Marcelo

Re: Query con ADS - ayuda

Posted: Mon May 21, 2012 4:32 pm
by rolando
Gracias Marcelo,

Funcionó bien.

Saludos.

Rolando :D

Re: Query con ADS - ayuda

Posted: Tue May 22, 2012 1:33 pm
by MarioG
Otra manera:

Code: Select all

    Select TALON, NOMBRE, DIRECCION, LOCALIDAD from TRABAJOS where FECHA = {d ''}
Saludos

Re: Query con ADS - ayuda

Posted: Tue May 22, 2012 4:33 pm
by rolando
Gracias Mario y gracias a todos.

Un abrazo.

Rolando :D

Re: SIGO con Query con ADS - ayuda

Posted: Wed May 23, 2012 1:19 pm
by rolando
Buen día,

Sigo precisando una ayuda.

Tengo que hacer un select de acuerdo con los valores de _ logical.

Intenté esto pero no funciona:

Code: Select all

Select TALON, NOMBRE, DIRECCION from TRABAJOS where FINALIZADO IS NULL and GTIA and not EXTENDIDA
Donde GTIA y EXTENDIDA son _ logical y pretendo que se ejecute cuando GTIA sea .t. y EXTENDIDA sea .f.

Seguro que se la saben. Gracias.

Rolando :D

Re: SIGO con Query con ADS - ayuda

Posted: Wed May 23, 2012 1:28 pm
by rolando
Bueno, parece que luego de unas pruebas logré hacerlo, así funciona:

Code: Select all

Select TALON, NOMBRE, DIRECCION from TRABAJOS where FINALIZADO IS NULL and GTIA is not null and EXTENDIDA is null
Saludos.

Rolando :D

Re: SIGO con Query con ADS - ayuda

Posted: Wed May 23, 2012 1:44 pm
by fgondi
La solución sería esta:

Code: Select all

Select TALON, NOMBRE, DIRECCION from TRABAJOS where FINALIZADO IS NULL and GTIA=True and EXTENDIDA=False
Lo que conseguiste que funcionara significa lo siguiente:

Code: Select all

Select TALON, NOMBRE, DIRECCION from TRABAJOS where FINALIZADO IS NULL and GTIA is not null and EXTENDIDA is null
GTIA no esta en valor nulo (is not null), osea tiene algún valor sea el que sea
y
EXTENDIDA esta nulo (is null), osea no contiene nada de nada.

Esto me hace pensar que no esta bloqueado que _ queden en nulo, por lo que la solución para _ es:

Code: Select all

Select TALON, NOMBRE, DIRECCION from TRABAJOS where FINALIZADO IS NULL and GTIA=True and IsNull(EXTENDIDA, False)=False
o

Code: Select all

Select TALON, NOMBRE, DIRECCION from TRABAJOS where FINALIZADO IS NULL and GTIA=True and (EXTENDIDA is null or EXTENDIDA=False)
Del campo FINALIZADO no menciono nada porque no explicas que puede contener

Re: SIGO con Query con ADS - ayuda

Posted: Wed May 23, 2012 3:24 pm
by rolando
Fernando,

Gracias por tu respuesta.

El campo FINALIZADO es de date y quiero que se ejecute el select cuando esté vacío.

Respecto de _ logical, lo voy a usar como me indicas que me parece lo más razonable, aunque de la manera que lo hice obtuve los mismos resultados porque _ siempre contienen un estado lógico.

De todos modos pregunté para aprender y eso trato. Muchas gracias.

Saludos.

Rolando :D

Re: SIGO con Query con ADS - ayuda

Posted: Wed May 23, 2012 3:53 pm
by fgondi
Cuidado, no es lo mismo vacío que nulo.

Por ejemplo en un campo texto:
Nulo es que no hay nada
Y Vacío es hay una cadena de caracteres ("") sin nada en su interior.

Equivaldría al valor "NIL" en una variable de (x)Harbour.

En las tablas DBF es lo mismo el valor null y vacio
Pero con tablas ADT no es lo mismo