GARANTIR DESCONTO

Fórum Sql em Procedure, como inserir um IF no meio instrução SQL ? #58476

26/06/2007

0

Olá!
Sou Desenv. Delphi + FB/IB + DBExpress.

TEnho o seguinte problema, tenho q inserir um IF numa instrução SQL dentro de uma Procedure, veja abaixo, da forma q está não compila, como contonar esta situacao.

Procedure: Parmetro de entrada: Opção

A quem puder ajudar, desde já meus agradecimentos.

ANT.CARLOS/SP


------------------------------------ I N I C I O--------------
begin

[color=blue:6c046928fa]
FOR SELECT A.CODEMP, A.CODCLI, A.NOMCLI, A.DTVCTO, A.DTPGTO, coalesce(A.VLDIVIDA,0), coalesce(A.VLPGTO,0), coalesce(A.VLJUROS,0), coalesce(A.VLMULTA,0), coalesce(A.VLACRESC,0), coalesce(A.VLDESC,0), coalesce(A.NUMDOC,´.´)||´ - PARC: ´||A.nparc, coalesce(A.TIPCOBRANCA,´.´), coalesce(A.HISTORICO,´.´), A.DTEMISSAO
FROM RECEBIDOS A
LEFT JOIN auxempresa E ON (A.CODEMP = E.CODEMP and E.TERMINAL =:PTERMINAL)
[/color:6c046928fa]


[color=red:6c046928fa]
IF ((:OPCAO = ´0´) or (:OPCAO = ´´)) then
Where A.codemp = E.CODEMP and A.dtpgto between :PDTINI
and :PDTFIN;

else IF (:OPCAO = ´1´) then

Where A.codemp = E.CODEMP and ((A.condpgto = ´´VISTA´´) or
(A.condpgto = ´´ENTRADA´´)) and A.dtpgto between :PDTINI
and :PDTFIN

else IF (:OPCAO = ´2´) then

Where A.codemp = E.CODEMP and (A.condpgto = ´´PRAZO´´)
and A.dtpgto between :PDTINI and :PDTFIN
[/color:6c046928fa]



[color=blue:6c046928fa]
order BY A.CODCLI,A.NOMCLI,A.DTVCTO
INTO :CODEMP, :CODCLI, :NOMCLI, :DTVCTO, :DTPGTO, :VLDIVIDA, :VLPGTO, :VLJUROS, :VLMULTA, :VLACRESC, :VLDESC, :NUMDOC, :TIPCOBRANCA, :HISTORICO, :DTEMISSAO
DO BEGIN
NOME_CODIGO = NOMCLI||CAST(CODCLI as varchar(5));
Suspend;
End[/color:6c046928fa]
end
-------------------------------------F I M --------------------


Ant.carlos/sp

Ant.carlos/sp

Responder

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

Aceitar