[firebase-br] RES: union
Rodrigo A. de Freitas
rodrigo em solucoeseinformatica.com.br
Ter Fev 3 14:45:59 -03 2009
Carlos,
Pelo que eu vi, o problema não é no UNION em si, mas no fato que você está
fazendo um select .. from usando sua query com os unions no lugar de uma
tabela.
Você está usando FB 2.1 ? Faça assim:
WITH CONSULTA AS ( coloque aqui o seu select com os unions )
SELECT sum(debitos),
sum(creditos),
classificacao,
codigo,
saldoimplantacao,
fator
from consulta
group by classificação, codigo, saldoimplantacao, fator
order by codigo
não se esqueça que para o WITH .. AS funcionar, todos os campos de todos os
selects com unions devem ter o mesmo alias, para que o SELECT reconheça os
campos acima.
[]'s
Rodrigo A. de Freitas
Análise & Desenvolvimento
Soluções & Informática
-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Carlos Renato
Enviada em: terça-feira, 3 de fevereiro de 2009 10:03
Para: FireBase
Assunto: Re: [firebase-br] union
select sum(x.debitos) debitos,
sum(x.creditos) creditos,
x.classificacao,
x.codigo,
x.saldoimplantacao,
x.fator
from(
select
cast(coalesce(sum(coalesce(seg_tbl.valor,0)),0) as numeric(15,2)) debitos,
cast(0 as numeric(15,2)) creditos,
cus_contas.classificacao,
cus_contas.codigo,
cus_contas.saldoimplantacao,
cus_contas.fator
from cus_contas,seg_tbl, seg_pla
where
seg_tbl.cod_ctacontabil_debito is not null
and seg_tbl.cod_ctacontabil_debito <> ''
and seg_tbl.cod_ctacontabil_debito =
seg_pla.cod_ctacontabil
and seg_tbl.cod_pessoa_empresa =
seg_pla.cod_pessoa_empresa
and seg_tbl.cod_grupo_empresa =
seg_pla.cod_grupo_empresa
and seg_pla.ctacusto = cus_contas.codigo
and cus_contas.codigo <> 174
group by cus_contas.classificacao,
cus_contas.codigo,
cus_contas.saldoimplantacao,
cus_contas.fator
union
select cast(0 as numeric(15,2)) debitos,
cast(coalesce(sum(coalesce(seg_tbl.valor,0)),0)
as numeric(15,2))creditos,
cus_contas.classificacao,
cus_contas.codigo,
cus_contas.saldoimplantacao,
cus_contas.fator
from cus_contas,seg_tbl, seg_pla
where
seg_tbl.cod_ctacontabil_credito is not null
and seg_tbl.cod_ctacontabil_credito <> ''
and seg_tbl.cod_ctacontabil_credito =
seg_pla.cod_ctacontabil
and seg_tbl.cod_pessoa_empresa =
seg_pla.cod_pessoa_empresa
and seg_tbl.cod_grupo_empresa =
seg_pla.cod_grupo_empresa
and seg_pla.ctacusto = cus_contas.codigo
and cus_contas.codigo <> 174
group by cus_contas.classificacao,
cus_contas.codigo,
cus_contas.saldoimplantacao,
cus_contas.fator
union
select
cast(coalesce(sum(coalesce(ctb_lancamento.valor,0)),0) *
coalesce(cus_contas.fator,1) as numeric(15,2)) debitos,
cast(0 as numeric(15,2)) creditos,
cus_contas.classificacao,
cus_contas.codigo,
cus_contas.saldoimplantacao,
cus_contas.fator
from cus_contas,ctb_lancamento, ctb_planocontas
where
ctb_lancamento.cod_ctacontabil_debito is not
null
and ctb_lancamento.cod_ctacontabil_debito <> ''
and ctb_lancamento.cod_ctacontabil_debito =
ctb_planocontas.cod_ctacontabil
and ctb_lancamento.cod_pessoa_empresa =
ctb_planocontas.cod_pessoa_empresa
and ctb_lancamento.cod_grupo_empresa =
ctb_planocontas.cod_grupo_empresa
and ctb_planocontas.ctacusto = cus_contas.codigo
and cus_contas.codigo <> 174
group by cus_contas.classificacao,
cus_contas.codigo,
cus_contas.saldoimplantacao,
cus_contas.fator
union
select cast(0 as numeric(15,2)) debitos,
cast(coalesce(sum(coalesce(ctb_lancamento.valor,0)),0)
* coalesce(cus_contas.fator,1) as numeric(15,2)) creditos,
cus_contas.classificacao,
cus_contas.codigo,
cus_contas.saldoimplantacao,
cus_contas.fator
from cus_contas,ctb_lancamento, ctb_planocontas
where
ctb_lancamento.cod_ctacontabil_credito is not
null
and ctb_lancamento.cod_ctacontabil_credito <> ''
and ctb_lancamento.cod_ctacontabil_credito =
ctb_planocontas.cod_ctacontabil
and ctb_lancamento.cod_pessoa_empresa =
ctb_planocontas.cod_pessoa_empresa
and ctb_lancamento.cod_grupo_empresa =
ctb_planocontas.cod_grupo_empresa
and ctb_planocontas.ctacusto = cus_contas.codigo
and cus_contas.codigo <> 174
group by cus_contas.classificacao,
cus_contas.codigo,
cus_contas.saldoimplantacao,
cus_contas.fator)x
group by x.classificacao,
x.codigo,
x.saldoimplantacao,
x.fator
order by x.codigo
--------------------------------------------------
From: "Gustavo Moda" <gustavo.moda em gmail.com>
Sent: Tuesday, February 03, 2009 10:13 AM
To: "FireBase" <lista em firebase.com.br>
Subject: Re: [firebase-br] union
> Aceita sim.
> Cole o que você fez
>
> Mas a sintaxe básica é essa
>
> select
> campo_mesmo_tipo_tabela_1
> from tabela_1
> union
> select
> campo_mesmo_tipo_tabela_2
> from trabela_2
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use:
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
No virus found in this incoming message.
Checked by AVG - www.avg.com
Version: 8.0.233 / Virus Database: 270.10.16/1930 - Release Date: 02/02/09
07:51:00
Mais detalhes sobre a lista de discussão lista