- Este tópico contém 3 respostas, 3 vozes e foi atualizado pela última vez 17 anos atrás por Anônimo.
-
AutorPosts
-
23 de janeiro de 2008 às 10:00 pm #81148drhoffmanParticipante
Boas pessoal! tou a fazer um projecto para a faculdade e tou com uma dificuldade ! toua tentar fazer um query que me lista todos os alunos que nao vao as aulas teoricas a mais de 15 dias! tentei fazer deste modo mas nao tou a conseguir que isto me selecione os alunos que eu quero! alguem me pode ajudar?
select al.nome,id_aulaT
from Aluno al, AulasT_Aluno atal, Aulas_Teoricas at
where al.id_aluno=atal.id_aluno
and at.id_aulaT=atal.id_aulaT
and at.data not in ( select at.data
from Aulas_Teoricas
where to_char(data,’yyyymmdd’) BETWEEN (to_char(sysdate,’yyyymmdd’)-15) AND to_char(sysdate,’yyyymmdd’))
group by al.nome ,at.dataObrigado
23 de janeiro de 2008 às 10:46 pm #81149Marcio68AlmeidaParticipanteCreio que você quer os alunos que não frequentaram as últimas 15 aulas e não as aulas dos últimos 15 dias, mas, de qualquer forma, o jeito mais simples é o seguinte.
Pegue a data da última presença do aluno e veja se é maior que a data da 15ª aula teórica.24 de janeiro de 2008 às 4:43 pm #81150Anônimo[quote=”drhoffman”:2o7voow5]Boas pessoal! tou a fazer um projecto para a faculdade e tou com uma dificuldade ! toua tentar fazer um query que me lista todos os alunos que nao vao as aulas teoricas a mais de 15 dias! tentei fazer deste modo mas nao tou a conseguir que isto me selecione os alunos que eu quero! alguem me pode ajudar?
select al.nome,id_aulaT
from Aluno al, AulasT_Aluno atal, Aulas_Teoricas at
where al.id_aluno=atal.id_aluno
and at.id_aulaT=atal.id_aulaT
and at.data not in ( select at.data
from Aulas_Teoricas
where to_char(data,’yyyymmdd’) BETWEEN (to_char(sysdate,’yyyymmdd’)-15) AND to_char(sysdate,’yyyymmdd’))
group by al.nome ,at.dataObrigado[/quote]
Amigo se o que realmente deseja seja ver as faltas dos alunos nos ultimos 15 dias, se a relação entre essas tabelas for a que eu estou pensando… (tabela alunos os alunos, na tabela AulasT_Aluno estão as presenças dos alunos na aulas, e na Aulas_Teoricas estão as aulas)
Vou tentar te ajudar mas não sei se ta certo n testei nda… afinal nem sei a relação direito entre essas tabelas… deduzi de dois jeitosTipo:
alunos
* id_aluno pk
nomebla bla bla
Aulas_Teoricas
*id_aulaT
dataaula de blabla bla
AulasT_Aluno –guarda os alunos que frequentaram as aulas
id_aulaT
id_aluno fk
Eu faria o select assim :
select al.nome,
atal.id_aulaT
from Aluno al,
AulasT_Aluno atal
where al.id_aluno=atal.id_aluno
and atal.id_aulaT not in ( select id_aulaT
from Aulas_Teoricas
where to_char(data,’yyyymmdd’) BETWEEN (to_char(sysdate,’yyyymmdd’)-15) AND to_char(sysdate,’yyyymmdd’));Ou
- id_aluno pk
nome
bla bla bla
Aulas_Teoricas — tipo mesma id_aula mas muda os dias
*id_aulaT
* dataaula de blabla bla
AulasT_Aluno –guarda os alunos que frequentaram as aulas por data
id_aulaT
id_aluno fk
data
select al.nome,
atal.id_aulaT
from Aluno al,
AulasT_Aluno atal
where al.id_aluno=atal.id_aluno
and (atal.id_aulaT,atal.data) not in ( select id_aulaT, data
from Aulas_Teoricas
where to_char(data,’yyyymmdd’) BETWEEN (to_char(sysdate,’yyyymmdd’)-15) AND to_char(sysdate,’yyyymmdd’))Bom… como eu disse n tenho ideia de como estão estas tabelas… mas se vc me passar a relação certinha… garanto que monto a tal consulta… espero ter ajudado em algo ou poder ajudar, e não esquece q nem testei isso ai… fiz direto… pode ter erros normalmente besteirinhas… ve ai!!!!!
flww…Daniel Reis
24 de janeiro de 2008 às 4:51 pm #81151AnônimoOlhei de novo pra esses selects… e vi q tem diversas maneiras mais faceis de fazer.. acho que fui seguindo seu padrão!!!
Mas ainda aguardo tua avaliação, e resposta dizendo se ainda eh necessario!!! - id_aluno pk
-
AutorPosts
- Você deve fazer login para responder a este tópico.