pesquisa select com um parametro em três situação
preciso de um consulta assim:
[color=red:d479057af0]WITH SQLCC DO //CHEQUES a Vencer
Begin
Close;
SQL.Clear;
SQL.Add(´Select sum(valor) as totca From CHEQUE where nomecliente = :pClin and situ is null and DATACADASTRO >= :pData´);
ParamByName(´pClin´).AsString := Edit5.Text;
ParamByName(´pData´).AsSQLTimeStamp := DateTimeToSQLTimeStamp(DATE);
Open;
end;[/color:d479057af0]
o Campo situ pode esta gravado no banco como = ´Q´ ou como ´D´ ou como ´T´ ou como null.
o que preciso é buscar todos os registros que o campo situ seja diferente de ´Q´.
so estou conseguindo trazer o campo campo com valor NULL
Me ajude nesta busca
[color=red:d479057af0]WITH SQLCC DO //CHEQUES a Vencer
Begin
Close;
SQL.Clear;
SQL.Add(´Select sum(valor) as totca From CHEQUE where nomecliente = :pClin and situ is null and DATACADASTRO >= :pData´);
ParamByName(´pClin´).AsString := Edit5.Text;
ParamByName(´pData´).AsSQLTimeStamp := DateTimeToSQLTimeStamp(DATE);
Open;
end;[/color:d479057af0]
o Campo situ pode esta gravado no banco como = ´Q´ ou como ´D´ ou como ´T´ ou como null.
o que preciso é buscar todos os registros que o campo situ seja diferente de ´Q´.
so estou conseguindo trazer o campo campo com valor NULL
Me ajude nesta busca
Dpinho
Curtidas 0
Respostas
Steve_narancic
16/10/2006
Acho que é isso que você precisa:
WITH SQLCC DO //CHEQUES a Vencer Begin Close; SQL.Clear; SQL.Add(´Select sum(valor) as totca From CHEQUE where nomecliente = :pClin and (situ is null OR situ <> :situ) and DATACADASTRO >= :pData´); ParamByName(´pClin´).AsString := Edit5.Text; ParamByName(´situ´).AsString := Edit6.Text; ParamByName(´pData´).AsSQLTimeStamp := DateTimeToSQLTimeStamp(DATE); Open; end;
GOSTEI 0
Dpinho
16/10/2006
Valeu a ajuda, estava dando erro na condição <>, mas com sua ajuda vi que faltava colocar entre parentese.
Deu certinho Obrigado
Deu certinho Obrigado
GOSTEI 0
Macario
16/10/2006
Ola.
Se o SGBDR que voce usa der suporte a clausula IN, opte pela mesma, pois com ela voce tera melhor performance.
8)
Se o SGBDR que voce usa der suporte a clausula IN, opte pela mesma, pois com ela voce tera melhor performance.
8)
GOSTEI 0
Dpinho
16/10/2006
Ola.
Se o SGBDR que voce usa der suporte a clausula IN, opte pela mesma, pois com ela voce tera melhor performance.
8)
Utilizo Interbase, tentei com in, mas não conseguir retornar nada, talves não tenha colocado cert, poderia me dar um exemplo de como utilizar
GOSTEI 0
Macario
16/10/2006
Ola [b:4e0887b84c]DPinho[/b:4e0887b84c].
No seu caso a instrucao passada pelo colega [b:4e0887b84c]steve_narancic[/b:4e0887b84c] e a solucao.
A clausula IN nao suporta NULL como parametro.
Exemplo:
Neste caso a aplicacao do [b:4e0887b84c]IN[/b:4e0887b84c] tem melhor performance do que varias clausulas [b:4e0887b84c]OR[/b:4e0887b84c].
Espero ter lhe ajudado em algo.
[]´s
No seu caso a instrucao passada pelo colega [b:4e0887b84c]steve_narancic[/b:4e0887b84c] e a solucao.
A clausula IN nao suporta NULL como parametro.
Exemplo:
select * from Tabela where TIPO in (´A´,´B´,´F´,´Z´)
Neste caso a aplicacao do [b:4e0887b84c]IN[/b:4e0887b84c] tem melhor performance do que varias clausulas [b:4e0887b84c]OR[/b:4e0887b84c].
Espero ter lhe ajudado em algo.
[]´s
GOSTEI 0