Condição numa SQL (IF OU CASE) FIREBIRD1.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
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
Curtidas 0
Respostas
Sremulador
24/03/2004
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
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
GOSTEI 0
Maicon Loffi
24/03/2004
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!
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!
GOSTEI 0
Sremulador
24/03/2004
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
if query.pesqueisa1.isimpty = true then
select sum(rs_parcela) as Total_Parcelas,
else
select sum(rs_parcela) as Total_Nao_Pago
GOSTEI 0
Maicon Loffi
24/03/2004
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!!
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!!
GOSTEI 0