[firebase-br] SELECT COM UNION

Marco Antonio Albuquerque marcksystem em hotmail.com
Seg Abr 30 14:35:04 -03 2007


Ja fiz cast para igualar as colunas desiguais deixanda os limões iguais a 
laranja e não deu certo tb

>From: "omar l m rosa" <omar em conesul.inf.br>
>Reply-To: FireBase <lista em firebase.com.br>
>To: "FireBase" <lista em firebase.com.br>
>Subject: Re: [firebase-br] SELECT COM UNION
>Date: Mon, 30 Apr 2007 08:39:44 -0300
>
>Me parece que é condição sine qua non que todsas as colunas seja exatamente
>iguais para fazer union...
>
>Que unioun haveria entre laranjas e limoes?
>
>Bai!
>omar
>
>----- Original Message -----
>From: "Marco Antonio Albuquerque" <marcksystem em hotmail.com>
>To: <lista em firebase.com.br>
>Sent: Sunday, April 29, 2007 10:16 AM
>Subject: Re: [firebase-br] SELECT COM UNION
>
>
>Olá,
>
>Fiz o teste o erro da justamente na instrução case no subselect que no
>primeiro bloco (tabela A) o codigo da tabela é do tipo integer e do segundo
>bloco varchar gerando o erro de datatype, ja fiz cast de todas as formas
>possiveis e não resolveu.
>
>SELECT campo_1,
> > >  case campo_1
> > >    when x then (Select nome from tabela_M
>                              where tabela_M.Codigo = cast(Tabela_A.codigo 
>as
>integer)
> > >    when y then (Select nome from tabela_N
> > >                        where tabela_N.Codigo =cast(Tabela_A.codigo as
> >integer)
> > >    end as descricao
> > > from Tabela_A
> > > union all
> > > SELECT campo_1,
> > >  case campo_1
> > >    when x then (Select nome from tabela_O
>                              where tabela_O.Codigo = cast(Tabela_B.codigo 
>as
>integer)
> > >    when y then (Select nome from tabela_P
> > >                        where tabela_P.Codigo =cast(Tabela_B.codigo as
> >integer)
> > >    end as descricao
> > > from Tabela_B
> > > From: "Renato Deggau" <rdeggau em gmail.com>
> >Reply-To: FireBase <lista em firebase.com.br>
> >To: FireBase <lista em firebase.com.br>
> >Subject: Re: [firebase-br] SELECT COM UNION
> >Date: Sat, 28 Apr 2007 18:48:25 -0300
> >
> >Marco, entendi que rodando os selects separados não dá erro; o que estou
> >sugerindo e rodar COM o UNION mas tirando alguns campos
> >
> >Considerando o select que mandasses agora, roda assim (coniserando que 
>"--"
> >são linhas comentadas:
> >
> >SELECT campo_1
> >--,
> >--            case campo_1
> >--               when x then (Select nome from tabela_M
> >--                                         where tabela_M.Codigo
> >=Tabela_A.codigo)
> >--               when y then (Select nome from tabela_N
> >--                  where tabela_N.Codigo = Tabela_A.codigo)
> >--            end as descricao
> >   from Tabela_A
> >union all
> >SELECT campo_1
> >--,
> >--            case campo_1
> >--               when x then (Select nome from tabela_O
> >--                                         where tabela_O.Codigo
> >=Tabela_B.codigo)
> >--               when y then (Select nome from tabela_P
> >--                                         where tabela_P.Codigo
> >=Tabela_B.codigo)
> >--            end as descricao
> >   from Tabela_B
> >
> >
> >Se o select acima funcionar,voce sabe que não é com o campo_1 o problema 
>e
> >assim sucessivamente; e dai vai incluindo o segundo, o terceiro e o 
>quarto
> >campo em ambas as querys
> >
> >Renato
> >
> >On 4/28/07, Marco Antonio Albuquerque <marcksystem em hotmail.com> wrote:
> > >
> > > ja fiz, rodando separado do union ambos rodam certinho.
> > > A estrutura simplificada seria mais ou menos assim...
> > >
> > > SELECT campo_1,
> > >              case campo_1
> > >                 when x then (Select nome from tabela_M
> > >                                           where tabela_M.Codigo =
> > > Tabela_A.codigo)
> > >                 when y then (Select nome from tabela_N
> > >                                           where tabela_N.Codigo =
> > > Tabela_A.codigo)
> > >              end as descricao
> > >    from Tabela_A
> > > union all
> > > SELECT campo_1,
> > >              case campo_1
> > >                 when x then (Select nome from tabela_O
> > >                                           where tabela_O.Codigo =
> > > Tabela_B.codigo)
> > >                 when y then (Select nome from tabela_P
> > >                                           where tabela_P.Codigo =
> > > Tabela_B.codigo)
> > >              end as descricao
> > >    from Tabela_B
> > >
> > > Acho que assim fica mais claro...
> > >
> > > Agradeço
> > >
> > >
> > > >From: "Renato Deggau" <rdeggau em gmail.com>
> > > >Reply-To: FireBase <lista em firebase.com.br>
> > > >To: FireBase <lista em firebase.com.br>
> > > >Subject: Re: [firebase-br] SELECT COM UNION
> > > >Date: Sat, 28 Apr 2007 18:06:57 -0300
> > > >
> > > >Marco,
> > > >
> > > >é dificil assim no visual, mas uma alternativa seria voce comentar
> >todos
> > > os
> > > >campos (menos 1) nas 2 querys junto com o UNION; roda e ve se 
>funciona;
> >e
> > > >assim vai sucessivamente liberando 1 a 1 até descobrir onde está a
> > > >inconsistencia
> > > >
> > > >
> > > >Ou seja, na primeira execucao voce só rodaria o
> > > >SELECT cons.ID_CAD001
> > > >-----
> > > >----
> > > >UNION ALL
> > > >SELECT s.ID_CAD001
> > > >-----
> > > >
> > > >
> > > >Renato Deggau
> > > >
> > > >On 4/28/07, Marco Antonio Albuquerque <marcksystem em hotmail.com> 
>wrote:
> > > > >
> > > > > Boa tarde colegas,
> > > > >                         será que alguem poderia me ajudar num 
>select
> > > >meio
> > > > > complicado? Acontece o seguinte, tenho um select de uma tabela A 
>com
> > > >union
> > > > > em outra B em ambas tenho uma condição case que faz um subselect 
>em
> > > > > diversas
> > > > > tabelas. Se rodo separado do union as duas funcionam bem, porém 
>com
> >a
> > > > > junção
> > > > > UNION da erro de Data type unknown. Tentei resolver isso usando 
>cast
> > > nos
> > > > > possíveis campos porém não deu certo. Alguém teria alguma idéia
> > > > >
> > > > >
> > > >______________________________________________
> > > >FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > > >Para editar sua configuração na lista, use o endereço
> > > >http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> > > >Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> > >
> > > _________________________________________________________________
> > > Verificador de Segurança do Windows Live OneCare: verifique já a
> >segurança
> > > do seu PC! http://onecare.live.com/site/pt-br/default.htm
> > >
> > >
> > > ______________________________________________
> > > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > > Para editar sua configuração na lista, use o endereço
> > > http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> > > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> > >
> >______________________________________________
> >FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> >Para editar sua configuração na lista, use o endereço
> >http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> >Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>_________________________________________________________________
>Descubra como mandar Torpedos do Messenger para o celular!
>http://mobile.msn.com/
>
>
>______________________________________________
>FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>Para editar sua configuração na lista, use o endereço
>http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
>
>______________________________________________
>FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>Para editar sua configuração na lista, use o endereço 
>http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>Para consultar mensagens antigas: http://firebase.com.br/pesquisa

_________________________________________________________________
O Windows Live Spaces é seu espaço na internet com fotos (500 por mês), blog 
e agora com rede social http://spaces.live.com/





Mais detalhes sobre a lista de discussão lista