[firebase-br] SELECT COM UNION

Marco Antonio Albuquerque marcksystem em hotmail.com
Ter Maio 1 19:44:47 -03 2007


Ola amigo, obrigado pela sugestão realmente não tinha pensado nisso, vou 
tentar amanhã e se der certo te informo.

obrigado


>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: Tue, 1 May 2007 10:08:15 -0300
>
>Delirando um pouco...
>
>Será que como o resultado é de um select dentro de um case o fb não tem
>referência para o tipo de coluna resultado?
>
>Sugiro colocar um cast antes do case para definir o tipo de resultado...
>
>some like:
>=======================
>SELECT campo_1,
>
>
>CAST(
>
>case campo_1
>
>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 VARCHAR(100))
>
>as descricao
>
>  from Tabela_A
>  union all
>
>SELECT campo_1,
>
>
>CAST (
>
>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 VARCHAR(100))
>
>  as descricao
>  from Tabela_B
>
>======================
>
>bai
>omar
>
>
>----- Original Message -----
>From: "Marco Antonio Albuquerque" <marcksystem em hotmail.com>
>To: <lista em firebase.com.br>
>Sent: Monday, April 30, 2007 2:35 PM
>Subject: Re: [firebase-br] SELECT COM UNION
>
>
>
>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/
>
>
>______________________________________________
>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