Fórum pesquisa select com um parametro em três situação #331195

16/10/2006

0

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


Dpinho

Dpinho

Responder

Posts

16/10/2006

Steve_narancic

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; 



Responder

Gostei + 0

16/10/2006

Dpinho

Valeu a ajuda, estava dando erro na condição <>, mas com sua ajuda vi que faltava colocar entre parentese.
Deu certinho Obrigado


Responder

Gostei + 0

16/10/2006

Macario

Ola.

Se o SGBDR que voce usa der suporte a clausula IN, opte pela mesma, pois com ela voce tera melhor performance.

8)


Responder

Gostei + 0

16/10/2006

Dpinho

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


Responder

Gostei + 0

16/10/2006

Macario

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:

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


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar