Jump to content

Recommended Posts

Posted

Bom dia a todos

É o seguinte estou com alguma dificuldade em realizar o select correcto para aquilo que pretendo, eu tenho uma base dados com varios dados de alunos e o que queria era realizar um group by por nome de aluno para ter acesso a todos os exames realizados pelo mesmo e até aqui tudo bem faço Select * from alunos where nome = 'João Miguel Fernandes' e aparece tudo o que é do João, mas eu tenho alunos com o mesmo nome, sendo a unica forma de os distiguir a data de nascimento, mas também existe o caso contrario em que tenho alunos com datas de nascimento iguais.

O que pretendo é um select em que só obtenha resultados de um aluno. Já fiz Group BY Nome, Datanasc mas aqui tenho resultados de alunos diferentes....

Espero que me tenha feito entender...

Desde já obrigada

Posted

A resposta é aquilo que o Caça disse...

Isto é o problema clássico de construção de bases de dados que já ninguém pensa hoje em dia porque a forma como se deve desenvolver uma base de dados já tem como base a utilização de chaves primárias distintas, nunca nomes e datas de nascimento... O que é que aconteceria se por acaso tivesses duas pessoas com o mesmo nome e a mesma data de nascimento? Arranjavas mais um campo que servisse de chave?

Aquilo que tinhas de fazer é ter uma coluna na tabela de alunos que tivesse um identificador único para cada pessoa. Normalmente um número.

“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Posted

Pois eu sei que a bd não está bem formada mas também não posso mecher nela, apenas a estou a usar para consulta e criação de um interface para consultas mais directas por parte do utilizador. Não tenho nenhum id que era o que queria, por acaso não tenho nenhum caso em tenha nome e data de nascimento em comum...

Posted

então basicamente o que precisas até é filtrar pelos dois campos... Não percebo então qual o problema?

Select * from alunos where nome = 'João Miguel Fernandes' and datanasc = cast('05-21-1990' as datetime)

não daria os resultados para o João que nasceu em 21/5/1990?

Posted

Resolvi a questão de outra forma, fiz um sricpt em java para realizar uma base dados com uma coluna ALUNODN em que o resultado é João Miguel Fernandes 05-21-1990. Pode não ser o mais correcto mas está a funcionar...

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.