MYSQL: inserir uma consulta dentro de outra consulta
Bom dia a todos, estou com um problema que não estou conseguindo resolver, devido o meu nivel de conhecimento, estou precisando fazer uma consulta em um banco de dados onde existem varias tabelas, até ai beleza, desenrolei, só que o que acontece é que eu queria monta-la diferente, o meu SELECT consiste nisso:
SELECT boletim_sala.sala_id, boletim_sala.sala_nome, boletim_usuarios.user_id, boletim_usuarios.user_nome, boletim_disciplinas.dis_nome, AVG( boletim_notas_bim.bim_bim1 + boletim_notas_bim.bim_bim2 + boletim_notas_bim.bim_bim3 + boletim_notas_bim.bim_bim4 ) AS media, SUM( boletim_notas_bim.bim_faltas1 + boletim_notas_bim.bim_faltas2 + boletim_notas_bim.bim_faltas3 + boletim_notas_bim.bim_faltas4 ) AS faltas
FROM boletim_usuarios
JOIN boletim_notas_bim ON boletim_usuarios.user_id = boletim_notas_bim.bim_user_id
JOIN boletim_disciplinas ON boletim_notas_bim.bim_dis_id = boletim_disciplinas.dis_id
JOIN boletim_sala ON boletim_sala.sala_id = boletim_usuarios.user_sala_id
GROUP BY boletim_sala.sala_id, boletim_disciplinas.dis_nome, boletim_usuarios.user_id
ORDER BY boletim_sala.sala_id, boletim_usuarios.user_nome, boletim_disciplinas.dis_nome
Que me retorna isto:
http://www.thiagohille.com.br/como_imprime.jpg
Eu não queria que replicasse o resultado varias vezes, eu queria acredito eu que é fazer um select dentro de outro select, colocar os nomes das disciplinas, notas e faltas junto com o nome do aluno, mas tudo em 1 única linha... não estou conseguindo fazer esse select, ai embaixo segue o exemplo que eu montei no photoshop de como gostaria que imprimisse a consulta....
Como deve ser:
http://www.thiagohille.com.br/como_deve_ser.jpg
Galera, agradeço muito a ajuda!
SELECT boletim_sala.sala_id, boletim_sala.sala_nome, boletim_usuarios.user_id, boletim_usuarios.user_nome, boletim_disciplinas.dis_nome, AVG( boletim_notas_bim.bim_bim1 + boletim_notas_bim.bim_bim2 + boletim_notas_bim.bim_bim3 + boletim_notas_bim.bim_bim4 ) AS media, SUM( boletim_notas_bim.bim_faltas1 + boletim_notas_bim.bim_faltas2 + boletim_notas_bim.bim_faltas3 + boletim_notas_bim.bim_faltas4 ) AS faltas
FROM boletim_usuarios
JOIN boletim_notas_bim ON boletim_usuarios.user_id = boletim_notas_bim.bim_user_id
JOIN boletim_disciplinas ON boletim_notas_bim.bim_dis_id = boletim_disciplinas.dis_id
JOIN boletim_sala ON boletim_sala.sala_id = boletim_usuarios.user_sala_id
GROUP BY boletim_sala.sala_id, boletim_disciplinas.dis_nome, boletim_usuarios.user_id
ORDER BY boletim_sala.sala_id, boletim_usuarios.user_nome, boletim_disciplinas.dis_nome
Que me retorna isto:
http://www.thiagohille.com.br/como_imprime.jpg
Eu não queria que replicasse o resultado varias vezes, eu queria acredito eu que é fazer um select dentro de outro select, colocar os nomes das disciplinas, notas e faltas junto com o nome do aluno, mas tudo em 1 única linha... não estou conseguindo fazer esse select, ai embaixo segue o exemplo que eu montei no photoshop de como gostaria que imprimisse a consulta....
Como deve ser:
http://www.thiagohille.com.br/como_deve_ser.jpg
Galera, agradeço muito a ajuda!
Thiago Nascimento
Curtidas 0
Melhor post
Fabio Parreira
30/11/2016
Acho que o seu caso seria um PIVOT, mas não sei se é possível no MySQL.
Uma solução também seria você criar uma function que retorne as matérias concatenadas.
PIVOT
https://en.wikibooks.org/wiki/MySQL/Pivot_table
Functions.
https://wiki.locaweb.com.br/pt-br/Como_criar_Functions_no_MySQL_5.0
Uma solução também seria você criar uma function que retorne as matérias concatenadas.
PIVOT
https://en.wikibooks.org/wiki/MySQL/Pivot_table
Functions.
https://wiki.locaweb.com.br/pt-br/Como_criar_Functions_no_MySQL_5.0
GOSTEI 1
Mais Respostas
Douglas Souza
30/11/2016
Tem como vc exportar o banco?
GOSTEI 1
Thiago Nascimento
30/11/2016
Valeu Parreirafabio, vou fazer mais umas pesquisas aqui, absss!
GOSTEI 0
Thiago Nascimento
30/11/2016
Não consigo exportar Douglas, obrigado! =)
GOSTEI 0