sliderf Posted January 5, 2007 at 05:33 PM Report #74607 Posted January 5, 2007 at 05:33 PM Boas, Tenho um trabalho para fazer para a faculdade com alguma urgência e nao estou a conseguir fazer. Tenho de desenvolver uma aplicação em Oracle mas estou parado por causa do modelo relacional normalizado do problema (não estou a conseguir acabá-lo). Se alguém me quiser ajudar que me mande PM. P.S.: Não ponho aqui a minha duvida porque o enunciado e muito grande e complexo e as minhas duvidas são complicadas de explicar. Espero que me consigam ajudar. Obrigada. Sem mais... sliderf
HecKel Posted January 5, 2007 at 06:04 PM Report #74612 Posted January 5, 2007 at 06:04 PM Boas! Talvez possas colocar a dúvida mais especifica sem ser o trabalho todo, deves ter algumas dúvidas mais concretas, julgo eu 🙂 Por acaso estou bastante fresco no que respeita oracle e modelo relacional, dia 8 tenho exame 😄 abraços, HecKel Look Left Blog
sliderf Posted January 12, 2007 at 11:59 AM Author Report #75883 Posted January 12, 2007 at 11:59 AM Boas. Surgiram mais umas dúvidas. Neste caso preciso de fazer um SELECT .Tenho as seguintes tabelas T1(codigo,cidadel1,cidadel2,morada) e T2(codigo,tempo,preco).Em que cedigo de T2 e chave estrangeira de codigo em t1.O preciso de saber e o menor custo e respectivo preco de cidadel1=a e cidade2=b. Obrigado. Sem mais... sliderf
shumy Posted January 12, 2007 at 12:17 PM Report #75887 Posted January 12, 2007 at 12:17 PM Provavelmente poderá ser: select cidade1,cidade2,min(preco) from T1,T2 where T1.codigo = T2.codigo group by cidade1,cidade2,min(preco) Aqui há coisa de 2 anos fazia umas malhas de croché, depois fartei-me e fui para informática!
sliderf Posted January 12, 2007 at 12:40 PM Author Report #75889 Posted January 12, 2007 at 12:40 PM Boas. Assim como esta nao funciona.Eu n percebo muito disto mas acho que n podemos ter no group by uma funçaõ de agregaçao (min(preco)). Obrigada. Sem mais... sliderf
Hipnoted Posted January 12, 2007 at 12:43 PM Report #75891 Posted January 12, 2007 at 12:43 PM Assim como esta nao funciona.Eu n percebo muito disto mas acho que n podemos ter no group by uma funçaõ de agregaçao (min(preco)). Exacto disseste bem, mas tenta tirar isso (min(preco)) do group by e testa a ver. "Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência"
sliderf Posted January 12, 2007 at 12:50 PM Author Report #75892 Posted January 12, 2007 at 12:50 PM Boas. Tirando o min(preco) do group by ja funciona(quer dizer nao da erro) mas o resultado n é o espera.Ele nao me mostra so o preço minimo mostra todos. Obrigado. Sem mais... sliderf
shumy Posted January 12, 2007 at 12:53 PM Report #75893 Posted January 12, 2007 at 12:53 PM Sorry, exacto tira. Aqui há coisa de 2 anos fazia umas malhas de croché, depois fartei-me e fui para informática!
shumy Posted January 12, 2007 at 12:57 PM Report #75894 Posted January 12, 2007 at 12:57 PM mostra todos os preços minimos para todas as associações cidade1/cidade2. Não era o pretendido. Se queres só uma associação é adicionar: SELECT cidade1,cidade2,min(preco) FROM T1,T2 WHERE T1.codigo = T2.codigo and cidade1 = <X> and cidade2 = <Y> GROUP BY cidade1,cidade2,min(preco) Tem de existir a associação cidade1/cidade2 senão o resultado é nulo. Aqui há coisa de 2 anos fazia umas malhas de croché, depois fartei-me e fui para informática!
sliderf Posted January 12, 2007 at 01:13 PM Author Report #75895 Posted January 12, 2007 at 01:13 PM Boas. Se calhar expliquei-me mal.Fazendo o codigo sem o min(preco) no group by da-me o seguinte resultado: cidade1 cidade2 tempo preco 1 2 5 300 1 2 4 100 O que eu pretendo e que so me mostre o registo que tem o preço mais baixo, ou seja, o ultimo registo com o preço 100. Obrigada. Sem mais... sliderf
Kyu Posted January 12, 2007 at 01:57 PM Report #75897 Posted January 12, 2007 at 01:57 PM não testei mas é o que queres é algo deste género: SELECT cidade1, cidade2, tempo, preco FROM T1, T2 WHERE T1.codigo = T2.codigo AND preco = (SELECT MIN(preco) FROM T2) EDIT: faltava associar as tabelas EDIT2: ando aqui a dormir, não estava no select o tempo como pediste 🙂 "You leave nothing but death and horror in your wake!""Now, that's not fair, sometimes there's fire too"
shumy Posted January 12, 2007 at 02:19 PM Report #75902 Posted January 12, 2007 at 02:19 PM Porque adicionaste o "tempo"? Não especificaste isso! Assim agrupa também com tempo. Aqui há coisa de 2 anos fazia umas malhas de croché, depois fartei-me e fui para informática!
sliderf Posted January 12, 2007 at 09:24 PM Author Report #75996 Posted January 12, 2007 at 09:24 PM Boas. Kyu como disseste funciona, mas nao da o resultado que espero.Como tu indicaste aparece-me todos os registos que tem o menor tempo,mas o que eu que deem o menor tempo mas com o local1=1 e local2=1. Eu alterei o codigo para o seguinte SELECT cidade1, cidade2, tempo, preco FROM T1, T2 WHERE T1.codigo = T2.codigo AND T1.noi=1 AND t2.nof=2 AND preco = (SELECT MIN(preco) FROM T2). Mas da-me no data found O que eu queria e que me selecciona-se cidade1 cidade2 tempo preco 1 2 4 100 dos seguintes registos t1 codigo cidade1 cidade2 morada 1 1 2 xxx 2 2 3 yyy t2 codigo,tempo,preco 1 5 300 1 4 100 2 3 250 Obrigada. Sem mais... sliderf
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now