Fórum problema com procedure #50239
01/04/2005
0
como faço para colocar um if dentro de uma procedure
BEGIN
FOR
SELECT PEDIDO.COD_REP as Codigo,
REP.NOME as Nome,
COUNT(PEDIDO.NUMERO) as QTDE_VENDA,
SUM(Pedido.Total) AS TOTAL,
SUM(Pedido.Valor_Desconto) Desconto,
sum(pedido.desconto_extra) Extra
FROM PEDIDO
INNER JOIN REP ON PEDIDO.COD_REP = REP.CODIGO
INNER JOIN TIPO_MOV ON PEDIDO.COD_TIPO_MOV = TIPO_MOV.CODIGO
WHERE
PEDIDO.DATA_FATURAMENTO BETWEEN :DATA_INI AND :DATA_FIM
*** como faço para colocar um if e ficar igual o que esta embaixo
If (Cliente <> 0) then
begin
and PEDIDO.cod_cliente = :cliente;
end
and Pedido.Faturado = :faturado
and Pedido.Cancelado = :cancelado
AND TIPO_MOV.GRUPO_MOV = :GRUPO_MOV
and Pedido.Cod_Loja = :Loja
GROUP BY PEDIDO.COD_REP,REP.NOME
ORDER BY 4 DESC
INTO :CODIGO,:NOME,:QTDE_VENDA,:TOTAL,:DESCONTO,:EXTRA DO BEGIN
SUSPEND;
END
END
BEGIN
FOR
SELECT PEDIDO.COD_REP as Codigo,
REP.NOME as Nome,
COUNT(PEDIDO.NUMERO) as QTDE_VENDA,
SUM(Pedido.Total) AS TOTAL,
SUM(Pedido.Valor_Desconto) Desconto,
sum(pedido.desconto_extra) Extra
FROM PEDIDO
INNER JOIN REP ON PEDIDO.COD_REP = REP.CODIGO
INNER JOIN TIPO_MOV ON PEDIDO.COD_TIPO_MOV = TIPO_MOV.CODIGO
WHERE
PEDIDO.DATA_FATURAMENTO BETWEEN :DATA_INI AND :DATA_FIM
*** como faço para colocar um if e ficar igual o que esta embaixo
If (Cliente <> 0) then
begin
and PEDIDO.cod_cliente = :cliente;
end
and Pedido.Faturado = :faturado
and Pedido.Cancelado = :cancelado
AND TIPO_MOV.GRUPO_MOV = :GRUPO_MOV
and Pedido.Cod_Loja = :Loja
GROUP BY PEDIDO.COD_REP,REP.NOME
ORDER BY 4 DESC
INTO :CODIGO,:NOME,:QTDE_VENDA,:TOTAL,:DESCONTO,:EXTRA DO BEGIN
SUSPEND;
END
END
Fernando
Curtir tópico
+ 0
Responder
Posts
01/04/2005
Gandalf.nho
Talvez funcione usando CASE, mas não sei se dá pra usar CASE na cláusula WHERE, só testando mesmo. Outra possibilidade seria usar EXECUTE STATEMENT;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)