GARANTIR DESCONTO

Fórum Condição numa SQL (IF OU CASE) FIREBIRD1.0 #43377

24/03/2004

0

Gostaria de saber se existe, e qual a sintaxe certa para condições dentro de uma sql.

Por exemplo - não funciona - mas caso é suportado gostaria de exemplo

select
sum(rs_parcela) as Total_Parcelas,
[b:3c6273b3f5]if[/b:3c6273b3f5] (pagamento is null) [b:3c6273b3f5]then [/b:3c6273b3f5]sum(rs_parcela) as Total_Nao_Pago
from NOTA_PRODUTO


Maicon Loffi

Maicon Loffi

Responder

Posts

24/03/2004

Sremulador

serve esta

DECLARE VARIABLE SL INTEGER;
DECLARE VARIABLE LT CHAR(3);
begin
LT = null;
SELECT LTLT, LTSL FROM LEITOS
WHERE (LTLT=:LEITO)
INTO LT, SL;
IF ((LT IS NOT NULL) AND (SL <> 1))THEN BEGIN
UPDATE LEITOS SET LTIN=:CONTA, LTSL=1
WHERE ((LTLT =:LEITO) AND (LTEN=:ENFERMARIA));
END ELSE EXCEPTION A001;
end


Responder

Gostei + 0

24/03/2004

Maicon Loffi

Obrigado pela resposta, mas não é isso que eu quero, este controle é feito numa trigger ou numa procedure.

select
sum(rs_parcela) as Total_Parcelas,
if (pagamento is null) then sum(rs_parcela) as Total_Nao_Pago
from NOTA_PRODUTO
where NUMERO_NOTA =:NUMERO_NOTA

Esta soma tem como objetivo evitar outra query para somar o total não pago.

Tem bancos que suportam estes comandos, eu só não sei se o firebird1.0 suporta, e também não sei qual a sintaxe certa.

outro exemplo - claro que não funciona - só pra entendimento do que eu preciso.

select
sum(rs_parcela) as Total_Parcelas,
case data_pagamento of
null : sum(rs_parcela) as Total_Nao_Pago
end
from NOTA_PRODUTO
where NUMERO_NOTA =:NUMERO_NOTA

Atenciosamente!


Responder

Gostei + 0

24/03/2004

Sremulador

Bem amigo acho que você pode fazer pelo delphi mesmo

if query.pesqueisa1.isimpty = true then
select sum(rs_parcela) as Total_Parcelas,
else
select sum(rs_parcela) as Total_Nao_Pago


Responder

Gostei + 0

24/03/2004

Maicon Loffi

if query.pesqueisa1.isimpty = true then
select sum(rs_parcela) as Total_Parcelas,
else
select sum(rs_parcela) as Total_Nao_Pago

Obrigado pela resposta, mas não é isso, o que eu quero é as duas condições em uma só SQL

Existe os camandos: só não sei se funciona ou qual a sintaxe a ser usada pelo firebird

select
sum(rs_parcela) as rs_total,
Case
when (data_pagamento is null) then sum(rs_parcela) as RS_Aberto
end
from nota_parcelas
where numero_nota =:numero_nota

Atenciosamente!!


Responder

Gostei + 0

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

Aceitar