GARANTIR DESCONTO

Fórum me ajudem nessa procedure #275222

02/04/2005

0

nao sei se essa procedure esta certa , mas me deem uma luz

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
and Pedido.Faturado = ´S´
and Pedido.Cancelado = ´N´
and Pedido.Cod_Loja = 1
GROUP BY PEDIDO.COD_REP,REP.NOME
ORDER BY 4 DESC
INTO :CODIGO,:NOME,:QTDE_VENDA,:TOTAL,:DESCONTO,:EXTRA DO
BEGIN

AQUI QUE ESTA O PROBLEMA, COMO FAÇO PARA COLOCAR ESSA CONDIÇÃO, PQ NAO SEI USAR execute statement PARA QUE QUANDO O USUARIO INFORMAR O CLIENTE ELE FILTRA POR CLIENTE, SE ELE NAO COLOCAR ELE PESQUISA TODOS

if ( :cliente <> 0 ) then
begin
vSQL = ´AND Pedido.Cod_Cliente = ´ || :cliente;
end

execute statement vSQL;
/* Condição */

SUSPEND;
END
END


Fernando

Fernando

Responder

Posts

02/04/2005

Raserafim

fernando, ao invés de vc fazer uma condição para testar se foi fornecido um código, vc pode utilizar o operador LIKE.
...Cod_Cliente LIKE :cliente ...

e no programa na hora de passar o parâmetro, caso não tenha nenhum valor vc passaria como parâmetro o símbolo de porcentagem ´¬´
...ParamByName(´Cliente´).variant := ´¬´;


obs: use o variant pois pode ser tanto número (caso tenha sido fornecido o código) como texto (caso n tenha nenhum código)

essa é apenas uma outra maneira


Responder

Gostei + 0

02/04/2005

Raserafim

desculpa uma coisa

...Cod_Cliente LIKE = :cliente ...



Responder

Gostei + 0

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

Aceitar