SIGO con Query con ADS - SOLUCIONADO

SIGO con Query con ADS - SOLUCIONADO

Postby rolando » Sun May 20, 2012 10:06 pm

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  Expand view
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  Expand view
Select TALON, NOMBRE, DIRECCION, LOCALIDAD from TRABAJOS where FECHA like '%  /  /    %'


y haciendo:

Code: Select all  Expand view
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:
Last edited by rolando on Sat May 26, 2012 2:02 pm, edited 2 times in total.
User avatar
rolando
 
Posts: 593
Joined: Sat May 12, 2007 11:47 am
Location: San Nicolás - BA - ARGENTINA

Re: Query con ADS - ayuda

Postby Marcelo Via Giglio » Mon May 21, 2012 12:38 am

Hola,

primero defines como quieres que ADS maneje las fechas

Code: Select all  Expand view
ADSSETDATEFORMAT("DD/MM/YYYY")


luego intenta como lo estuviste haciendo

saludos

Marcelo
Marcelo Via Giglio
 
Posts: 1050
Joined: Fri Oct 07, 2005 3:33 pm
Location: Cochabamba - Bolivia

Re: Query con ADS - ayuda

Postby fgondi » Mon May 21, 2012 9:37 am

Prueba asi:

Code: Select all  Expand view
Select TALON, NOMBRE, DIRECCION, LOCALIDAD from TRABAJOS where FECHA >= '2010-11-11' and FECHA <= '2012-02-20'
Un saludo
Fernando González Diez
ALSIS Sistemas Informáticos
User avatar
fgondi
 
Posts: 694
Joined: Fri Oct 07, 2005 6:58 am
Location: Palencia, España

Re: Query con ADS - ayuda

Postby rolando » Mon May 21, 2012 1:36 pm

Gracias a ambos por responder.

Marcelo, hice lo que propones y funcionó bién para buscar una fecha, ej:
Code: Select all  Expand view
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  Expand view
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:
User avatar
rolando
 
Posts: 593
Joined: Sat May 12, 2007 11:47 am
Location: San Nicolás - BA - ARGENTINA

Re: Query con ADS - ayuda

Postby compubrion » Mon May 21, 2012 1:38 pm

Saludos !

Intenta de esta forma

Select TALON, NOMBRE, DIRECCION, LOCALIDAD from TRABAJOS where FECHA BEETWEN '2010-11-11' AND FECHA '2012-02-20'
Harbour / Bcc / MinGW / Fwh 13.9
User avatar
compubrion
 
Posts: 130
Joined: Thu Mar 08, 2007 6:12 pm
Location: Miranda - Venezuela

Re: Query con ADS - ayuda

Postby rolando » Mon May 21, 2012 1:51 pm

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  Expand view
Select TALON, NOMBRE, DIRECCION, LOCALIDAD from TRABAJOS where FECHA = '  /  /    '


Necesitaría la forma de buscar campos de date vacíos.

Gracias.

Rolando :roll:
User avatar
rolando
 
Posts: 593
Joined: Sat May 12, 2007 11:47 am
Location: San Nicolás - BA - ARGENTINA

Re: Query con ADS - ayuda

Postby Marcelo Via Giglio » Mon May 21, 2012 4:01 pm

Hola,

eso debería ser fácil así

Code: Select all  Expand view

select *
from trabajos
where fecha is null
 


saludos

Marcelo
Marcelo Via Giglio
 
Posts: 1050
Joined: Fri Oct 07, 2005 3:33 pm
Location: Cochabamba - Bolivia

Re: Query con ADS - ayuda

Postby rolando » Mon May 21, 2012 4:32 pm

Gracias Marcelo,

Funcionó bien.

Saludos.

Rolando :D
User avatar
rolando
 
Posts: 593
Joined: Sat May 12, 2007 11:47 am
Location: San Nicolás - BA - ARGENTINA

Re: Query con ADS - ayuda

Postby MarioG » Tue May 22, 2012 1:33 pm

Otra manera:
Code: Select all  Expand view
   Select TALON, NOMBRE, DIRECCION, LOCALIDAD from TRABAJOS where FECHA = {d ''}


Saludos
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: Query con ADS - ayuda

Postby rolando » Tue May 22, 2012 4:33 pm

Gracias Mario y gracias a todos.

Un abrazo.

Rolando :D
User avatar
rolando
 
Posts: 593
Joined: Sat May 12, 2007 11:47 am
Location: San Nicolás - BA - ARGENTINA

Re: SIGO con Query con ADS - ayuda

Postby rolando » Wed May 23, 2012 1:19 pm

Buen día,

Sigo precisando una ayuda.

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

Intenté esto pero no funciona:
Code: Select all  Expand view
Select TALON, NOMBRE, DIRECCION from TRABAJOS where FINALIZADO IS NULL and GTIA and not EXTENDIDA


Donde GTIA y EXTENDIDA son dos campos logical y pretendo que se ejecute cuando GTIA sea .t. y EXTENDIDA sea .f.

Seguro que se la saben. Gracias.

Rolando :D
User avatar
rolando
 
Posts: 593
Joined: Sat May 12, 2007 11:47 am
Location: San Nicolás - BA - ARGENTINA

Re: SIGO con Query con ADS - ayuda

Postby rolando » Wed May 23, 2012 1:28 pm

Bueno, parece que luego de unas pruebas logré hacerlo, así funciona:

Code: Select all  Expand view
Select TALON, NOMBRE, DIRECCION from TRABAJOS where FINALIZADO IS NULL and GTIA is not null and EXTENDIDA is null


Saludos.

Rolando :D
User avatar
rolando
 
Posts: 593
Joined: Sat May 12, 2007 11:47 am
Location: San Nicolás - BA - ARGENTINA

Re: SIGO con Query con ADS - ayuda

Postby fgondi » Wed May 23, 2012 1:44 pm

La solución sería esta:
Code: Select all  Expand view
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  Expand view
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 estos campos queden en nulo, por lo que la solución para estos casos es:
Code: Select all  Expand view
Select TALON, NOMBRE, DIRECCION from TRABAJOS where FINALIZADO IS NULL and GTIA=True and IsNull(EXTENDIDA, False)=False

o
Code: Select all  Expand view
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
Un saludo
Fernando González Diez
ALSIS Sistemas Informáticos
User avatar
fgondi
 
Posts: 694
Joined: Fri Oct 07, 2005 6:58 am
Location: Palencia, España

Re: SIGO con Query con ADS - ayuda

Postby rolando » Wed May 23, 2012 3:24 pm

Fernando,

Gracias por tu respuesta.

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

Respecto de los campos 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 estos campos siempre contienen un estado lógico.

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

Saludos.

Rolando :D
User avatar
rolando
 
Posts: 593
Joined: Sat May 12, 2007 11:47 am
Location: San Nicolás - BA - ARGENTINA

Re: SIGO con Query con ADS - ayuda

Postby fgondi » Wed May 23, 2012 3:53 pm

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
Un saludo
Fernando González Diez
ALSIS Sistemas Informáticos
User avatar
fgondi
 
Posts: 694
Joined: Fri Oct 07, 2005 6:58 am
Location: Palencia, España

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot], groiss and 44 guests