Olá Clayton, realizei o teste e obtive o seguinte erro: ORA-00936:
expressão não encontrada

On 2 dez, 14:12, Clayton <[email protected]> wrote:
> KKKKK.
>
> Analise o select.
> Está mencionado apenas uma única tabela de times, apenas duas vezes com
> alias diferente.
>
> tende executar pra vc ver.
>
> Em 2 de dezembro de 2010 13:56, Diego Feijó <[email protected]> escreveu:
>
>
>
> > Clayton, não são 2 tabelas de times é uma tabela de times e 1 tabela
> > de jogos, porém a tabela de jogos tem 2 ligações com a tabela de
> > times.
>
> > Conforme primeiro post.
>
> > Tenho 2 tabelas Times e Jogos. Na tabela de times tenho os seguintes
> > fields TIMES(id_time,nome). Na tabela de jogos tenho JOGOS(id_jogo,
> > idtime1, idtime2, gols_time1, gols_time2).
>
> > On 2 dez, 13:44, Clayton <[email protected]> wrote:
> > > Correção:
>
> > > SELECT
> > > ROOT.JOGOS.GOLS_TIME1,
> > > ROOT.JOGOS.GOLTS_TIME2,
> > > time_1.NOME AS TIME1,
> > > time_2.NOME AS TIME2,
> > > FROM
> > > ROOT.JOGOS
> > > INNER JOIN ROOT.TIMES AS time_1 ON (time_1.ID_TIMES =
> > ROOT.JOGOS.ID_TIME1)
> > > INNER JOIN ROOT.TIMES AS time_2 ON (time_2.ID_TIMES =
> > ROOT.JOGOS.ID_TIME2)
>
> > > Em 2 de dezembro de 2010 13:42, Clayton <[email protected]
> > >escreveu:
>
> > > > Diego,
>
> > > > O select abaixo funcionou perfeitamente aqui no oracle 10g.
>
> > > >   SELECT
> > > > ROOT.JOGOS.GOLS_TIME1,
> > > > ROOT.JOGOS.GOLTS_TIME2,
> > > > time_1.NOME AS TIME1,
> > > > time_2.NOME AS TIME2,
> > > > FROM
> > > > ROOT.JOGOS
> > > > INNER JOIN ROOT.TIMES1 AS time_1 ON (time_1.ID_TIMES =
> > ROOT.JOGOS.ID_TIME1)
> > > > INNER JOIN ROOT.TIMES2 AS time_2 ON (time_2.ID_TIMES =
> > ROOT.JOGOS.ID_TIME2)
>
> > > > Em 2 de dezembro de 2010 13:30, Diego Feijó <[email protected]>
> > escreveu:
>
> > > > Bruno não são 2 tabelas de times como você colocou times1 e times2 é
> > > >> uma tabela chamada times. Mesmo alterando na segunda para "as time2" o
> > > >> erro persiste.
>
> > > >> Parece ser simples mas é bem chatinho de resolver, como falei a única
> > > >> solução que encontrei é com sub-select.
>
> > > >> On 2 dez, 13:26, Bruno Soares <[email protected]> wrote:
> > > >> > ROOT.TIMES1.NOME AS TIME1,
>
> > > >> > > ROOT.TIMES2.NOME AS TIME1,
>
> > > >> > ai está o erro
>
> > > >> > Coluna com o mesmo nome
>
> > > >> > 2010/12/2 Diego Feijó <[email protected]>
>
> > > >> > > Clayto, dessa forma já tentei e o oracle retorna um erro.
> > ORA-00918:
> > > >> > > coluna definida de maneira ambígua
>
> > > >> > > On 2 dez, 13:08, Clayton <[email protected]> wrote:
> > > >> > > > SELECT
> > > >> > > >  ROOT.JOGOS.GOLS_TIME1,
> > > >> > > >  ROOT.JOGOS.GOLTS_TIME2,
> > > >> > > >  ROOT.TIMES1.NOME AS TIME1,
> > > >> > > > ROOT.TIMES2.NOME AS TIME1,
> > > >> > > > FROM
> > > >> > > >  ROOT.JOGOS
> > > >> > > >  INNER JOIN ROOT.TIMES1 ON (ROOT.TIMES1.ID_TIMES =
> > > >> ROOT.JOGOS.ID_TIME1)
> > > >> > > > INNER JOIN ROOT.TIMES2 ON (ROOT.TIMES2.ID_TIMES =
> > > >> ROOT.JOGOS.ID_TIME2)
>
> > > >> > > > Em 2 de dezembro de 2010 11:29, bruno bg <[email protected]>
> > > >> escreveu:
>
> > > >> > > > > apesar dessa lista não ser de SQL, vc poderia colocar
> > OFF-TOPIC.
>
> > > >> > > > > então.
> > > >> > > > > no inner join vc pode fazer dois INNER JOIN com as tabelas de
> > TIME
> > > >> > > > > e no final fazer um GROUP BY.
>
> > > >> > > > > abraço
> > > >> > > > > --
> > > >> > > > > ****************************************************
> > > >> > > > >www.brunobg.com
> > > >> > > > > [email protected]  (MSN & Skype)
> > > >> > > > > blogflex.brunobg.com
> > > >> > > > > @brunogrohs
> > > >> > > > > (21) 9913-2397
>
> > > >> > > > > Em 2 de dezembro de 2010 09:04, Diego Feijó <[email protected]
>
> > > >> > > escreveu:
>
> > > >> > > > > Bom dia Pessoal,
> > > >> > > > >> ontem realizei minha prova de grau2 sobre banco de dados,
> > porém
> > > >> tinha
> > > >> > > > >> uma questão que está me deixando encucado, vou descrever ela
> > aqui
> > > >> e
> > > >> > > > >> gostaria de ver quais as soluções que vocês dariam.
>
> > > >> > > > >> Vamos lá.
>
> > > >> > > > >> Tenho 2 tabelas Times e Jogos. Na tabela de times tenho os
> > > >> seguintes
> > > >> > > > >> fields TIMES(id_time,nome). Na tabela de jogos tenho
> > > >> JOGOS(id_jogo,
> > > >> > > > >> idtime1, idtime2, gols_time1, gols_time2).
>
> > > >> > > > >> Na tabela de jogos tenho 2 relacionamentos para a tabela de
> > > >> times. Na
> > > >> > > > >> prova utilizei um sub-select para fazer o segundo
> > relacionamento,
> > > >> > > > >> conforme abaixo. Neste caso ele me traz 1 registro com os 2
> > times
> > > >> e os
> > > >> > > > >> gols de cada time, tudo certinho.
>
> > > >> > > > >> SELECT
> > > >> > > > >>  ROOT.JOGOS.GOLS_TIME1,
> > > >> > > > >>  ROOT.JOGOS.GOLTS_TIME2,
> > > >> > > > >>  ROOT.TIMES.NOME AS TIME1,
> > > >> > > > >>  (SELECT ROOT.TIMES.NOME FROM JOGOS INNER JOIN ROOT.TIMES ON
> > > >> > > > >> (ROOT.TIMES.ID_TIMES = JOGOS.ID_TIME2)) AS TIME2
> > > >> > > > >> FROM
> > > >> > > > >>  ROOT.JOGOS
> > > >> > > > >>  INNER JOIN ROOT.TIMES ON (ROOT.TIMES.ID_TIMES =
> > > >> ROOT.JOGOS.ID_TIME1)
>
> > > >> > > > >> Porém na hora de entregar a prova ao professor ele me disse
> > que
> > > >> não
> > > >> > > > >> era necessário utilizar o sub-select, somente com inner join
> > > >> > > > >> funcionaria.
> > > >> > > > >> Cheguei agora no trampo e fiz o teste, somente com inner join
> > > >> como ele
> > > >> > > > >> falou, porém me traz 2 registros com os 2 times mas com os
> > gols
> > > >> > > > >> duplicados, ficando errado conforme enunciado da prova.
>
> > > >> > > > >> Pergunto a vocês teria outra forma de fazer essa questão?
>
> > > >> > > > >> Obrigado desde já
> > > >> > > > >> Diego Feijó.
>
> > > >> > > > >> --
> > > >> > > > >> Você recebeu esta mensagem porque está inscrito na lista
> > > >> "flexdev"
> > > >> > > > >> Para enviar uma mensagem, envie um e-mail para
> > > >> > > [email protected]
> > > >> > > > >> Para sair da lista, envie um email em branco para
> > > >> > > > >> [email protected]
> > > >> > > > >> Mais opções estão disponíveis emhttp://
> > > >> > > groups.google.com/group/flexdev
>
> > > >> > > > > --
> > > >> > > > > Você recebeu esta mensagem porque está inscrito na lista
> > "flexdev"
> > > >> > > > > Para enviar uma mensagem, envie um e-mail para
> > > >> > > [email protected]
> > > >> > > > > Para sair da lista, envie um email em branco para
> > > >> > > > > [email protected]
> > > >> > > > > Mais opções estão disponíveis emhttp://
> > > >> groups.google.com/group/flexdev
>
> > > >> > > > --
> > > >> > > > Clayton Marques Pereira
>
> > > >> > > --
> > > >> > > Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> > > >> > > Para enviar uma mensagem, envie um e-mail para
> > > >> [email protected]
> > > >> > > Para sair da lista, envie um email em branco para
> > > >> > > [email protected]
> > > >> > > Mais opções estão disponíveis emhttp://
> > > >> groups.google.com/group/flexdev
>
> > > >> > --
> > > >> > Bruno Soareshttp://www.brunosoares.com
>
> > > >> --
> > > >> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> > > >> Para enviar uma mensagem, envie um e-mail para
> > [email protected]
> > > >> Para sair da lista, envie um email em branco para
> > > >> [email protected]
> > > >> Mais opções estão disponíveis emhttp://
> > groups.google.com/group/flexdev
>
> > > > --
> > > > Clayton Marques Pereira
>
> > > --
> > > Clayton Marques Pereira
>
> > --
> > Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> > Para enviar uma mensagem, envie um e-mail para [email protected]
> > Para sair da lista, envie um email em branco para
> > [email protected]
> > Mais opções estão disponíveis emhttp://groups.google.com/group/flexdev
>
> --
> Clayton Marques Pereira

-- 
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para 
[email protected]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev

Responder a