[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