alvorac
(usa Outra)
Enviado em 19/04/2018 - 10:55h
Olá, sou novato em mysql, to com dificuldade para fazer uma consulta que retorne um questionario com N questões conforme seu TIPO e devidas quantidades, vou tentar explicar o problema:
São 5 Tabelas:
Series: Guardam 12 series do ensino fundamental ao ensino médio
Tipo: Classificam as questões em niveis de dificuldade de 1 a 20, e um tempo medio que a questao deve ser respondida
Questões: Uma matriz de questões distribuídas para cada ano e tipo
Exemplo:
Questão 1 + 1 = 1, TIPO:1 ANO: 1…Tipo N Ano N.
Agora vem as tabelas auxiliares
Disciplina: Guarda as disciplinas como matematica, portugues, …
Perfil: (Essa tabela é o parametro para gerar os questionarios)guarda o total de questoes conforme a disciplina, considera-se que para um numero sequencial de questões normais, havera ou não uma correspondencia de uma questão extra, há uma tolerancia de erros, para cada disciplina, exemplo matematica pode errar uma de cada tipo, porem essas ligações pensei de fazer via programação.
Exemplo: Matematica = Pode errar 1 vez, se o aluno responder uma questão do tipo 3 errada, sera substituida por outra do mesmo tipo. no segundo erro, termina a prova e encerra a resposta do questionario.
Sobre o Questionario:
Dado de parametros a Disciplina, tenho o perfil de questões para o questionário( DISCIPLINA, ANO e TIPO e suas respectivas quantidades de questões normais e questões extra), a SQL então deve retornar as questões que atendam as exigencias de QUANTIDADE (NORMAL E EXTRA) CONFORME Os TIPOS cadastrados em PERFIL.
Tentei a seguinte consulta:
[code]
SELECT
COALESCE(CatParent.id, Questoes.id) id,
COALESCE(CatParent.enunciado, Questoes.enunciado) enunciado,
perfil.tipo_id
FROM perfil
JOIN Questoes ON perfil.tipo_id = Questoes.tipo_id and
Questoes.ano_id = perfil.ano_id
LEFT JOIN Questoes AS CatParent ON Questoes.tipo_id = CatParent.id
ORDER BY RAND( )
group by id, enunciado, tipo_id
Todavia não consegui o resultado, não sei o que há de errado, ele não limita a quantidade de questões conforme definido na tabela perfil, tanto de questões normais quanto extras, sera que tem alguma outra forma?