duvida no select

Delphi

11/11/2008

amigos tenho esse select em um botao para pesquisar as datas dos vencimentos -> SELECT * FROM CONTAS_RECEBER WHERE CTR_VENCIMENTO BETWEEN ...
Gostaria de estar adicionando mais um campo para ele pesquisar no mesmo select que seria o campo CTR_VENCIMENTO2, alguem podeira me ajudar

agradeço desde já !

Danilo


Gemim

Gemim

Curtidas 0

Respostas

Jeanalysson

Jeanalysson

11/11/2008

Danilo,

vc deve adicionar o operador AND e acrescentar quantos campos forem necessarios, ex:

SELECT * FROM CONTAS_RECEBER WHERE CTR_VENCIMENTO BETWEEN ´2008-11-01´ and ´2008-11-30´
AND CTR_VENCIMENTO2 BETWEEN ´2008-11-01´ and ´2008-11-30´

falow


GOSTEI 0
Gemim

Gemim

11/11/2008

jeanalysson, oque eu preciso é colocar tipo assim, pesquisar no CTR_VENCIMENTO OU/E NO CTR_VENCIMENTO2 no mesmo select coloquei conforme vc pediu mas deu erro olha só :

´SELECT * FROM CONTAS_RECEBER WHERE CTR_VENCIMENTO AND CTR_VENCIMENTO2 BETWEEN ´+QuotedStr(MaskEdit1.Text)+´ AND ´+QuotedStr(MaskEdit2.Text));


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

11/11/2008

Danilo, preste atenção na linha postada pelo colega a na linha que você informou.
SELECT * 
FROM CONTAS_RECEBER
WHERE
  CTR_VENCIMENTO BETWEEN ´2008-11-01´ and ´2008-11-30´
OR
  CTR_VENCIMENTO2 BETWEEN ´2008-11-01´ and ´2008-11-30´  



GOSTEI 0
Gemim

Gemim

11/11/2008

amigo estou com duvida na hora de montar o meu select olha só como que ta ficando :
codigo:

SQL.Add(´SELECT * FROM CONTAS_RECEBER WHERE CTR_VENCIMENTO BETWEEN ´+QuotedStr(MaskEdit1.Text)+´ AND ´+QuotedStr(MaskEdit2.Text) OR ´CTR_VENCIMENTO2´ BETWEEN QuotedStr(MaskEdit1.Text)+´ AND ´+QuotedStr(MaskEdit2.Text)

só que esta dando erro ! !


agradeço desde já


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

11/11/2008

SQL.Add(´SELECT * FROM CONTAS_RECEBER´);
SQL.Add(´WHERE CTR_VENCIMENTO BETWEEN ´+QuotedStr(MaskEdit1.Text)+´ AND ´+QuotedStr(MaskEdit2.Text));
SQL.Add(´ OR CTR_VENCIMENTO2 BETWEEN ´+QuotedStr(MaskEdit1.Text)+´ AND ´+QuotedStr(MaskEdit2.Text));


ou

SQL.Add(´SELECT * FROM CONTAS_RECEBER´);
SQL.Add(´WHERE CTR_VENCIMENTO BETWEEN :_DtIni AND :_DtFim´);
SQL.Add(´ OR CTR_VENCIMENTO2 BETWEEN :_DtIni AND :_DtFim´);
ParamByName(´_DtIni´).AsDate := DateToStr(MaskEdit1.Text);
ParamByName(´_DtFim´).AsDate := DateToStr(MaskEdit2.Text);



GOSTEI 0
Jeanalysson

Jeanalysson

11/11/2008

cara, qual banco vc esta usando ?

a data deve seguir um padrao de formatacao, no meu exemplo usei Firebird, sendo o padrao ano-mes-dia ´2008-11-30´

se vc passar de outra forma, ex: 01/11/2008 vai dar erro mesmo
faça uma funcao em Delphi pra inverter a string da data e ficar no formato certo

falow


GOSTEI 0
Gemim

Gemim

11/11/2008

amigos obrigado pelas dicas, deu certo !

Obrigado
Danilo


GOSTEI 0
POSTAR