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 em http://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 em http://groups.google.com/group/flexdev

Responder a