• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

sliderf

Duvidas trabalho da faculdade(desenvolvimento de modelo de dados)

13 mensagens neste tópico

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 :D

abraços, HecKel

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Provavelmente poderá ser:

select cidade1,cidade2,min(preco) from T1,T2
where T1.codigo = T2.codigo
group by cidade1,cidade2,min(preco)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Porque adicionaste o "tempo"? Não especificaste isso!

Assim agrupa também com tempo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora