ajuda com select e between

Delphi

10/04/2004

Boa tarde, pessoal, preciso de uma ajuda, estou usando este select aqui.
query2.SQL.Add(´where (a07_dt_in between :wvar1 and :wvar2) or (a07_dt_fi between :wvar3 and :wvar4)´);

so que eu preciso desse jeito

query2.SQL.Add(´where (:wvar1 between a07_dt_in and a07_dt_fi) or (:wvar2 between a07_dt_in and a07_dt_fi)´);

alguem sabe como eu poderia colocar o parametro no lugar do campo e o campo no lugar do parametro.

uso paradox.
obrigado


Victor_antonio

Victor_antonio

Curtidas 0

Respostas

Dbergkamps

Dbergkamps

10/04/2004

caro colega,sem maiores pretensões eu lhe sugiro que reescreva o source da seguinte forma
query2.SQL.Add(´where ´ + (a07_dt_in between :wvar1 and :wvar2) + ´or´ + (a07_dt_fi between :wvar3 and :wvar4));
Obs.:Geralmente, teste suas SQL´s num memo pra ver se está da forma como quer.
Valeu e Feliz Páscoa


GOSTEI 0
Victor_antonio

Victor_antonio

10/04/2004

nao funciona, oq eu preciso, tenho uma data inicial que 10/12/2004 e final que é 20/12/2004, se faço uma pesquisa usando data inicial 12/12/2004 e final que é 18/12/2004 ele nao acha, por isso eu tenho a necessidade de colocar o paramentro no lugar do campo.
dessa forma ele nao funciona.

query1.SQL.Add(´where (a07_dt_in between :wvar1 and :wvar2) or (a07_dt_fi between :wvar3 and :wvar4)´);

se tiver um jeito de colocar a consulta dessa maneira iria funionar.

query1.SQL.Add(´where (:wvar1 between a07_dt_in and a07_dt_fi) or (:wvar2between a07_dt_in and a07_dt_fi)´);

obrigado


GOSTEI 0
Djjunior

Djjunior

10/04/2004

como esse parametro ia ser passado? se for o usuário que for escolher faça o seguinte :

case Escolha.ItenIndex of
0: query1.SQL.Add(´where (a07_dt_in between :wvar1 and :wvar2)´);
1: query1.SQL.Add(´where (a07_dt_fi between :wvar1 and :wvar2)´);
2: query1.SQL.Add(´where (a07_dt_in between :wvar1 and :wvar2) or (a07_dt_fi between :wvar3 and :wvar4)´);
end;

sendo escolha um RadioGroup.


GOSTEI 0
Adilsond

Adilsond

10/04/2004

query2.SQL.Add(´where (a07_dt_in >= :wvar1 and a07_dt_fi <= :wvar2)´);


GOSTEI 0
Victor_antonio

Victor_antonio

10/04/2004

query2.SQL.Add(´where (a07_dt_in >= :wvar1 and a07_dt_fi <= :wvar2)´);

- nenhum desses tipo ai cima funciona pois se eu tenho um registro que tem esta data inicial que é 10/12/2004 e a data final que 20/12/2004
se eu faço uma procura pela data inicial que é 10/12/2004 e data final que é 18/12/2004 ele nao acha, esta data inicial e final fica no mesmo registro, se fosse um campo data por registo iria funcionar mas como sao dois campos no mesmo regitro eu precisaria fazer a procura desse jeito

query2.SQL.Add(´where (:wvar1 between a07_dt_in and a07_dt_fi) or (:wvar2 between a07_dt_in and a07_dt_fi)´);

se alguem puder me ajudar ou nao, desde ja agradeço.

victor.


GOSTEI 0
POSTAR