DUVIDAS EM CLAUSULA SQL
Pessoal, boa tarde....
Bom, eu tenho uma tabela com a seguinte estrura:
CodAluno
Data
HoraEntrada
(dentre outros campos que não irão me interessar)
Nesta tabela, eu estou colocando TODAS as passagens dos alunos da academia, tanto ENTRADA como SAÃDA....... Até aÃ, está funcionando muito bem o meu sistema.
Só que eu agora preciso fazer um relatório com a seguinte condição:
Quero pegar TODOS os alunos que passaram pela academia no perÃodo de 01/07/2010 a 31/07/2010.
Só que eu quero neste SELECT que me apareça SOMENTE o primeiro acesso deste aluno na academia, e não TODOS os acessos dele neste perÃodo.
Como que eu faço a cláusula SQL para pegar TODOS os alunos nesta minha tabela PASSAGEM, onde eu quero que apareça para mim somente o primeiro acesso de cada aluno nesta minha cláusula...... Será que conseguiram entender???? rsrs
Abraços e conto com a ajuda de vocês......
Bom, eu tenho uma tabela com a seguinte estrura:
CodAluno
Data
HoraEntrada
(dentre outros campos que não irão me interessar)
Nesta tabela, eu estou colocando TODAS as passagens dos alunos da academia, tanto ENTRADA como SAÃDA....... Até aÃ, está funcionando muito bem o meu sistema.
Só que eu agora preciso fazer um relatório com a seguinte condição:
Quero pegar TODOS os alunos que passaram pela academia no perÃodo de 01/07/2010 a 31/07/2010.
Só que eu quero neste SELECT que me apareça SOMENTE o primeiro acesso deste aluno na academia, e não TODOS os acessos dele neste perÃodo.
Como que eu faço a cláusula SQL para pegar TODOS os alunos nesta minha tabela PASSAGEM, onde eu quero que apareça para mim somente o primeiro acesso de cada aluno nesta minha cláusula...... Será que conseguiram entender???? rsrs
Abraços e conto com a ajuda de vocês......
Olá,
talvez isto funcione :
select min(data), data, codaluno, horaentrada from tabela
group by data, codaluno, horaentrada
Até,
Rogério.
talvez isto funcione :
select min(data), data, codaluno, horaentrada from tabela
group by data, codaluno, horaentrada
Até,
Rogério.
Caro Marcio, não funcionou.....
O que eu quero é o seguinte:
Tenho a tabela com estes dados
CodAluno Data Hora
10 01/07/2010 15:00
22 01/07/2010 15:03
25 01/07/2010 18:00
50 01/07/2010 20:00
10 02/07/2010 14:00
20 02/07/2010 18:00
25 03/07/2010 09:00
O que eu quero é fazer um SELECT com estes dados, para me trazer os seguintes dados:
CodAluno Data Hora
10 01/07/2010 15:00
22 01/07/2010 15:03
25 01/07/2010 18:00
50 01/07/2010 20:00
20 02/07/2010 18:00
Obrigado
O que eu quero é o seguinte:
Tenho a tabela com estes dados
CodAluno Data Hora
10 01/07/2010 15:00
22 01/07/2010 15:03
25 01/07/2010 18:00
50 01/07/2010 20:00
10 02/07/2010 14:00
20 02/07/2010 18:00
25 03/07/2010 09:00
O que eu quero é fazer um SELECT com estes dados, para me trazer os seguintes dados:
CodAluno Data Hora
10 01/07/2010 15:00
22 01/07/2010 15:03
25 01/07/2010 18:00
50 01/07/2010 20:00
20 02/07/2010 18:00
Obrigado
acho q se vc tivesse um campo Sequencia de Lançamento nessa Tabela Passagem...daria certo...
pq dai vc fazia um Select entre Periodos com a Menor Sequencia de Cada Aluno...dai sim vc Teria o Primeiro Acesso...
pq dai vc fazia um Select entre Periodos com a Menor Sequencia de Cada Aluno...dai sim vc Teria o Primeiro Acesso...
Caro FERNANDO,
Mesmo se eu tivesse esa tal sequencia, seria muito mais complicado e deixaria o sistema um pouco mais [Ô]lento[Ô], pois teria que fazer mais um SELECT na tabela para poder ver qual a seguencia, adicionar 1 e gravar.....
Não pude fazer isso, então a solução foi esta mesma....
Eu sei que dá pra matar em uns 2 selects este problema, mas não estou conseguindo bolar isso.... Mas sei sim que é possÃvel e bem simples....
Mesmo se eu tivesse esa tal sequencia, seria muito mais complicado e deixaria o sistema um pouco mais [Ô]lento[Ô], pois teria que fazer mais um SELECT na tabela para poder ver qual a seguencia, adicionar 1 e gravar.....
Não pude fazer isso, então a solução foi esta mesma....
Eu sei que dá pra matar em uns 2 selects este problema, mas não estou conseguindo bolar isso.... Mas sei sim que é possÃvel e bem simples....
tenta bolar com ..
SELECT DISTINCT no codigo e data menor..
agora to meio ocupado...senao tentava
SELECT DISTINCT no codigo e data menor..
agora to meio ocupado...senao tentava
mas nesse caso coloca o Campo como Autonumerador..ou seja o Banco Soma + 1...fazendo isso não fica Lento..Agora Select Max e gravar...ae fica Lento...concordo com vccc
Eu acredito que o MARCIO ROGéRIO matou a charada acredito que a idéia dele resolva mudando apenas um campo assim
SELECT CodAluno ,Data ,MIN(HoraEntrada) FROM tabela
ORDER BY codaluno, Data, HoraEntrada
Olá LCSD é possÃvel sim.
[Ô]Select CodAluno,min(data) as Data, min(HoraEntrada) as HoraEntrada from Passagem where data>=convert(datetime,[ô]2010-07-31[ô],102) AND data<convert(datetime,[ô]2010-08-01[ô],102) group by data[Ô]
No exemplo acima, o comando é pro sqlServer, se for pra acces é só ajustar o formato da data, ok?
Abraços.
[Ô]Select CodAluno,min(data) as Data, min(HoraEntrada) as HoraEntrada from Passagem where data>=convert(datetime,[ô]2010-07-31[ô],102) AND data<convert(datetime,[ô]2010-08-01[ô],102) group by data[Ô]
No exemplo acima, o comando é pro sqlServer, se for pra acces é só ajustar o formato da data, ok?
Abraços.
Tópico encerrado , respostas não são mais permitidas