SenKiLL Postado Maio 27, 2014 Denunciar Share Postado Maio 27, 2014 (editado) Olá a todos. Gostaria de saber se alguém poderia me auxiliar a resolver um problema de um trabalho no Oracle que estou fazendo. Uma das perguntas é a seguinte: Preciso listar um navio que tem status "Danificado" mas que supostamente foi concertado e participou de outra batalha. Segue abaixo imagem. Alguém saberia como devo fazer para realizar esta consulta? Muito Obrigado! Editado Maio 27, 2014 por SenKiLL Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Marcelo_2 Postado Maio 27, 2014 Denunciar Share Postado Maio 27, 2014 tente c/ subconsulta.. ex: select ship from outcomes where result='damaged' and ship in(select ship from outcomes where result='ok') obs: essa tabela "BATTLE", no caso, é irrelevante.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 SenKiLL Postado Maio 27, 2014 Autor Denunciar Share Postado Maio 27, 2014 (editado) Opa Marcelo Beleza? Agradeço a ajuda, é que meu professor falou que nesse caso deveria usar operador de divisão por isso sub-julguei que era necessário efetuar com as duas tabelas. Eu também consegui efetuar a consulta da seguinte maneira: SELECT o.SHIP from OUTCOMES o, OUTCOMES o2 where o.SHIP = o2.SHIP and o.RESULT = 'damaged' and o.BATTLE <> o2.BATTLE; Mas como disse anteriormente ele pediu para que seja feita como se estivesse efetuando uma divisão em álgebra. Outro comando que eu fiz, porém não consegui fazer com que mostre apenas o barco que voltou a guerrear, é este: SELECT o.SHIP from OUTCOMES o, BATTLES b where o.RESULT = 'damaged' and o.BATTLE = b.NAME; O resultado da consulta gerou isso: SHIP ------------------------------ Prince of Walles South Dakota Eu também não posso dar um status para o estado do barco que voltou a guerrear como você fez, pois supostamente não sei o que aconteceu com ele na segunda batalha. Também tem este outro comando que o resultado não saiu como queria: SELECT o.SHIP from OUTCOMES o, OUTCOMES o2, BATTLES b, BATTLES b2 where o.SHIP = o2.SHIP and o.RESULT = 'damaged' and o.BATTLE = b.NAME and o2.BATTLE = b.NAME and b.DATA < b2.DATA; Ainda não consegui pensar em algo que complete a consulta mostrando apenas o barco que voltou a guerrear no caso o South Dakota, eu ainda tenho um pouco de dificuldade de passar álgebra em comando SQL. Outro ponto é que eu posso ter um barco "OK" em uma guerra que aconteceu antes da guerra que ele ficou "damaged" e isso mostraria na consulta, portanto preciso usar as datas das batalhas Obrigado. Editado Maio 27, 2014 por SenKiLL Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
SenKiLL
Olá a todos.
Editado por SenKiLLGostaria de saber se alguém poderia me auxiliar a resolver um problema de um trabalho no Oracle que estou fazendo.
Uma das perguntas é a seguinte: Preciso listar um navio que tem status "Danificado" mas que supostamente foi concertado e participou de outra batalha.
Segue abaixo imagem.
Alguém saberia como devo fazer para realizar esta consulta?
Muito Obrigado!
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.