Ajuda com SQL no Firebird (somar o resultador de dois select´s)
07/06/2019
0
tenho essas duas consultas, cada uma em um componente FDQuery
FDQuery1
select
SUM(IF_VALOR) AS TOTAL_ENTRADAS
from
ITENS_PL_FIXA
where
IF_CODIGO =:PF_CODIGO
AND IF_CC_ENTRADA IS NOT NULL
FDQuery2
select
SUM(IF_VALOR) AS TOTAL_RECEITAS
from
ITENS_PL_FIXA
where
IF_CODIGO =:PF_CODIGO
and IF_COD_RECEITA IS NOT NULL
gostaria de juntar as duas consultas em uma unico FDQuery somando TOTAL_ENTRADAS + TOTAL_RECEITAS = TOTAL_GERAL
FDQuery1
select
SUM(IF_VALOR) AS TOTAL_ENTRADAS
from
ITENS_PL_FIXA
where
IF_CODIGO =:PF_CODIGO
AND IF_CC_ENTRADA IS NOT NULL
FDQuery2
select
SUM(IF_VALOR) AS TOTAL_RECEITAS
from
ITENS_PL_FIXA
where
IF_CODIGO =:PF_CODIGO
and IF_COD_RECEITA IS NOT NULL
gostaria de juntar as duas consultas em uma unico FDQuery somando TOTAL_ENTRADAS + TOTAL_RECEITAS = TOTAL_GERAL
Emanuel Gonçalves
Curtir tópico
+ 0
Responder
Post mais votado
07/06/2019
pode ser assim:
ou assim:
select SUM(IF_VALOR) AS TOTAL_GERAL from ITENS_PL_FIXA where IF_CODIGO = :PF_CODIGO AND ( (NOT (IF_CC_ENTRADA IS NULL)) OR (NOT (IF_COD_RECEITA IS NULL)))
ou assim:
select SUM(case when not (IF_CC_ENTRADA is null) then IF_VALOR else 0 end) AS TOTAL_ENTRADAS, SUM(case when not (IF_COD_RECEITA is null) then IF_VALOR else 0 end) AS TOTAL_RECEITAS, SUM(IF_VALOR) AS TOTAL_GERAL from ITENS_PL_FIXA where IF_CODIGO = :PF_CODIGO AND ( (NOT (IF_CC_ENTRADA IS NULL)) OR (NOT (IF_COD_RECEITA IS NULL)))
Emerson Nascimento
Responder
Mais Posts
07/06/2019
Anderson Possamai
Creio que algo assim te ajude... use o union all e de nome iguais aos campos. depois use um select para somar os totais... nao compilei mas te de um rumo.
Abracos
SELECT SUM(TOTAL)
FROM (SELECT SUM(IF_VALOR) AS TOTAL
FROM ITENS_PL_FIXA
WHERE IF_CODIGO = :PF_CODIGO
AND IF_CC_ENTRADA IS NOT NULL
UNION ALL
SELECT SUM(IF_VALOR) AS TOTAL
FROM ITENS_PL_FIXA
WHERE IF_CODIGO = :PF_CODIGO
AND IF_COD_RECEITA IS NOT NULL)
Abracos
SELECT SUM(TOTAL)
FROM (SELECT SUM(IF_VALOR) AS TOTAL
FROM ITENS_PL_FIXA
WHERE IF_CODIGO = :PF_CODIGO
AND IF_CC_ENTRADA IS NOT NULL
UNION ALL
SELECT SUM(IF_VALOR) AS TOTAL
FROM ITENS_PL_FIXA
WHERE IF_CODIGO = :PF_CODIGO
AND IF_COD_RECEITA IS NOT NULL)
Responder
07/06/2019
Emanuel Gonçalves
Obrigado senhores, optei pela opção do Emerson
pode ser assim:
ou assim:
select SUM(IF_VALOR) AS TOTAL_GERAL from ITENS_PL_FIXA where IF_CODIGO = :PF_CODIGO AND ( (NOT (IF_CC_ENTRADA IS NULL)) OR (NOT (IF_COD_RECEITA IS NULL)))
ou assim:
select SUM(case when not (IF_CC_ENTRADA is null) then IF_VALOR else 0 end) AS TOTAL_ENTRADAS, SUM(case when not (IF_COD_RECEITA is null) then IF_VALOR else 0 end) AS TOTAL_RECEITAS, SUM(IF_VALOR) AS TOTAL_GERAL from ITENS_PL_FIXA where IF_CODIGO = :PF_CODIGO AND ( (NOT (IF_CC_ENTRADA IS NULL)) OR (NOT (IF_COD_RECEITA IS NULL)))
Responder
Clique aqui para fazer login e interagir na Comunidade :)