Preciso de uma query que mostre quais os alunos que possuem +15 dias de seu último comparecimento na escola. Preciso encontrar as evasões por mês (quantos alunos e quais alunos foram por mês).
Ex:
Em Janeiro, o último comparecimento do aluno "x" já possui +15 dias. Logo, posso considerá-lo uma evasão de Janeiro e assim para todos os meses seguintes...
Por gentileza, poderiam me auxiliar?
Obs: Não sei se estou no caminho certo, mas pensei em deixar a query abaixo como uma "temp" e agrupar a consulta de fora por "MONTH(alu.data_cad)" e "alu.cod".
Query para análise:
( SELECT
es.codigo_marca
,es.codigo_escola
,alu.cod
,alu.cod_sis
,DATE_FORMAT(alu.data_cad, '%d-%m-%Y') AS data_cad
,DATE_FORMAT(
(SELECT MAX(ca.data_comparecimento)
FROM Marcacao mc
INNER JOIN ComparecimentoAlu ca ON ca.codigo_marcacao = mc.codigo_marcacao
AND mc.dt_reposicao IS NULL
WHERE mc.codigo_csc = cc.cod_csc), '%d-%m-%Y') AS ultimo_comparecimento
,ac.codigo_tp_ac
,es.cod_rg_escola
,es.cod_cl_escola
,cc.cod_csc
FROM
Aln alu
INNER JOIN Acd ac ON alu.cod = ac.alu_cod
INNER JOIN Esc es ON ac.codigo_escola = es.codigo_escola AND ac.data_del IS NULL
INNER JOIN CsCont cc ON cc.codigo_acd = ac.codigo
WHERE
YEAR(alu.data_cad) = 2022
AND es.codigo_escola IN (5,6,7,8,9,10)
GROUP BY alu.cod
ORDER BY alu.data_cad ASC
)
Pergunta
Guilherme Miranda
Olá pessoal!
Como estão?
Preciso de uma query que mostre quais os alunos que possuem +15 dias de seu último comparecimento na escola. Preciso encontrar as evasões por mês (quantos alunos e quais alunos foram por mês).
Ex:
Em Janeiro, o último comparecimento do aluno "x" já possui +15 dias. Logo, posso considerá-lo uma evasão de Janeiro e assim para todos os meses seguintes...
Por gentileza, poderiam me auxiliar?
Obs: Não sei se estou no caminho certo, mas pensei em deixar a query abaixo como uma "temp" e agrupar a consulta de fora por "MONTH(alu.data_cad)" e "alu.cod".
Query para análise:
( SELECT
es.codigo_marca
,es.codigo_escola
,alu.cod
,alu.cod_sis
,DATE_FORMAT(alu.data_cad, '%d-%m-%Y') AS data_cad
,DATE_FORMAT(
(SELECT MAX(ca.data_comparecimento)
FROM Marcacao mc
INNER JOIN ComparecimentoAlu ca ON ca.codigo_marcacao = mc.codigo_marcacao
AND mc.dt_reposicao IS NULL
WHERE mc.codigo_csc = cc.cod_csc), '%d-%m-%Y') AS ultimo_comparecimento
,ac.codigo_tp_ac
,es.cod_rg_escola
,es.cod_cl_escola
,cc.cod_csc
FROM
Aln alu
INNER JOIN Acd ac ON alu.cod = ac.alu_cod
INNER JOIN Esc es ON ac.codigo_escola = es.codigo_escola AND ac.data_del IS NULL
INNER JOIN CsCont cc ON cc.codigo_acd = ac.codigo
WHERE
YEAR(alu.data_cad) = 2022
AND es.codigo_escola IN (5,6,7,8,9,10)
GROUP BY alu.cod
ORDER BY alu.data_cad ASC
)
Desde já, agradeço a todos!
Abraços!
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.