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
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
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
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
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
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
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
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
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
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