[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