huerta 0 Denunciar post Postado Fevereiro 18, 2010 Bom Dia pessoal. Minha dificuldade esta no select. Tenho 3 tabelas: aluno, materia, aluno_materia(1 para n). aluno: idAluno,nome materia: idMateria,nome aluno_materia: idAluno, idMateria Um aluno pode ter mais de uma materia, como poderia contar quantos alunos eu teria com mais de uma materia, ex: select count(a.idAluno) from aluno a left join aluno_materia am on(am.idAluno=a.idAluno) where idMateria = 1 and idMateria= 2 and idMateria = 3 Como contar quantos aluno tem as tres materias juntas? Obs: ja não posso mudar a estrutura das tabelas e seus relacionamentos. Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
koga021 0 Denunciar post Postado Fevereiro 18, 2010 SELECT id_aluno, count(*) FROM aluno_materia group by idAlunoja que voce utiliza uma tabela com 2 chaves, voce apenas agrupa a coluna do aluno,e deixa a contagem variar na materia, mas rode esse comando tambem com distinc na materia, so para ver se nao tem algo de errado, do tipo aluno cadastrado em materias com ids iguais. abraço Compartilhar este post Link para o post Compartilhar em outros sites
huerta 0 Denunciar post Postado Fevereiro 18, 2010 koga021, eu percebi que o comando informado mostra quantas materias cada aluno tem. Minha dificuldada esta em conseguir quantos alunos no total fazem determinadas materias juntas, pois quando uso a condição where idMateria = 1 and idMateria= 2 and idMateria = 3 o resultado vem zerado. Essa condição pode variar de 1 , 2 ou mais materias, ex: Quantos alunos fazem as materias: php ? Quantos alunos fazem as materias: php + mysql ? Quantos alunos fazem as materias: php + mysql + css ? Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
koga021 0 Denunciar post Postado Fevereiro 18, 2010 koga021, eu percebi que o comando informado mostra quantas materias cada aluno tem. Minha dificuldada esta em conseguir quantos alunos no total fazem determinadas materias juntas, pois quando uso a condição where idMateria = 1 and idMateria= 2 and idMateria = 3 o resultado vem zerado. Essa condição pode variar de 1 , 2 ou mais materias, ex: Quantos alunos fazem as materias: php ? Quantos alunos fazem as materias: php + mysql ? Quantos alunos fazem as materias: php + mysql + css ? Obrigado. aluno: idAluno,nome materia: idMateria,nome aluno_materia: idAluno, idMateri A lista geral de quantos aluno fazem cada materia SELECT count(*) FROM aluno_materia group by idMateri Abaixo um codigo com ais diferente SELECT a.count(*),b.count(*),c.count(*) FROM aluno_materia as a, aluno_materia as b, aluno_materia as c WHERE a.idAluno=b.idAluno AND a.idAluno=c.idAluno AND (a.idMateria='1' AND a.idMateria='2' AND a.idMateria='3') Voce da um nome diferente para a mesma tabela, apos isso voce deve informar que os ids dos alunos sao iguais e entre () os ids das materias. A logica e como se fossem 3 tabelas diferentes e cada tabela possui 1 id, em comum ou nao, e cada tabela fosse uma materia. testa ai. abḉ Compartilhar este post Link para o post Compartilhar em outros sites