1
resposta

SQL Server Sub-queries

Quis fazer uma busca igual a do exemplo 1 da aula de subqueries, porem trazendo tanto a média por aluno quanto a média por curso, para isso fiz o código abaixo:

Select a.nome ,c.nome ,avg(n.nota) media_aluno ,avg(n.nota) - (select avg(n1.nota) from nota n1) diferença

,media_curso = ( Select avg(n.nota) media_curso

From nota n Join resposta r On n.resposta_id = r.id Join exercicio e On r.exercicio_id = e.id Join secao s On e.secao_id = s.id Join curso c1 On s.curso_id = c1.id Group By c1.nome Having c1.nome = c.nome )

From nota n Join resposta r On n.resposta_id = r.id Join exercicio e On r.exercicio_id = e.id Join secao s On e.secao_id = s.id Join curso c On s.curso_id = c.id Join aluno a On r.aluno_id = a.id Group By c.nome, a.nome

A query funciona, mas os números não batem 100% com a média calculada manualmente analisando as tabelas, e não consegui identificar o erro, alguém pode me ajudar?

1 resposta

Oi Leonardo, eu trocaria o alias da subquery da media_curso... vc ta usando o mesmo n da query de fora.