Jump to content

Recommended Posts

Posted

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

Posted

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

Posted

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

Posted

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!

Posted

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"

Posted

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

Posted

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!

Posted

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

Posted

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"

Posted

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!

Posted

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.