Boa tarde turma.
Então meio em dúvida ou não sei kkkkk de como realizar uma tarefa aqui.
O cenário seria assim:
Estou desenvolvendo um relatório que será disponibilizado no Portal do Aluno, este relatório tem que seguir uma regra onde os parâmetros seria Matrícula e CodPerlet por exemplo.
Preciso montar um SQL onde no período TODAS as parcelas estiverem baixadas (FLAN.STATUSLAN = 1) o relatório será gerado.
Se houver alguma parcela em aberto o relatório será gerado em branco:
Segue sql abaixo para uma start.
SELECT DISTINCT SALUNO.RA,
UPPER (PPESSOA.NOME) [ALUNO],
(left(ppessoa.cpf,3)+'.'+ right(left (ppessoa.cpf,6),3)+'.'+ right(left (ppessoa.cpf,9),3)+'-'
+ right(left (ppessoa.cpf,12),2)) AS CPFALUNO,
FCFO.CODCFO,
UPPER(FCFO.NOME) NOME,
FCFO.CGCCFO,
CONCAT(SMATRICPL.PERIODO,'º') [PERIODO],
SHABILITACAOFILIAL.CODCURSO,
CONCAT (STIPOCURSO.NOME, ' de ', SCURSO.NOME) [NOMECURSO],
SUBSTRING(SPLETIVO.CODPERLET, 1,4) [ANO],
CONCAT (SUBSTRING(SPLETIVO.CODPERLET, 5,5),'º') [SEMESTRE],
CONCAT ( SUBSTRING(SPLETIVO.CODPERLET, 1,4),'.',SUBSTRING(SPLETIVO.CODPERLET, 5,5))[SEMESTRE2],
SCONTRATO.CODCONTRATO
FROM SALUNO (NOLOCK)
INNER JOIN PPESSOA (NOLOCK) ON SALUNO.CODPESSOA = PPESSOA.CODIGO
INNER JOIN SMATRICPL (NOLOCK) ON SMATRICPL.CODCOLIGADA = SALUNO.CODCOLIGADA AND SMATRICPL.RA = SALUNO.RA
INNER JOIN SPLETIVO (NOLOCK) ON SMATRICPL.IDPERLET = SPLETIVO.IDPERLET AND SMATRICPL.CODCOLIGADA = SPLETIVO.CODCOLIGADA
INNER JOIN SMATRICULA (NOLOCK) ON SALUNO.CODCOLIGADA = SMATRICULA.CODCOLIGADA AND SALUNO.RA = SMATRICULA.RA AND SMATRICULA.IDPERLET = SPLETIVO.IDPERLET
INNER JOIN SSTATUS (NOLOCK) ON SMATRICULA.CODSTATUS = SSTATUS.CODSTATUS
INNER JOIN SHABILITACAOFILIAL (NOLOCK) ON SMATRICULA.IDHABILITACAOFILIAL = SHABILITACAOFILIAL.IDHABILITACAOFILIAL AND SMATRICULA.CODCOLIGADA = SHABILITACAOFILIAL.CODCOLIGADA
INNER JOIN SCURSO (NOLOCK) ON SHABILITACAOFILIAL.CODCURSO = SCURSO.CODCURSO AND SHABILITACAOFILIAL.CODCOLIGADA = SCURSO.CODCOLIGADA
INNER JOIN STURMADISC (NOLOCK) ON SMATRICULA.IDTURMADISC = STURMADISC.IDTURMADISC
INNER JOIN SDISCIPLINA (NOLOCK) ON STURMADISC.CODDISC = SDISCIPLINA.CODDISC
INNER JOIN STIPOCURSO (NOLOCK) ON STIPOCURSO.CODCOLIGADA = SCURSO.CODCOLIGADA AND STIPOCURSO.CODTIPOCURSO = SCURSO.CODTIPOCURSO
INNER JOIN FCFO (NOLOCK) ON (SALUNO.CODCFO = FCFO.CODCFO)
INNER JOIN SCONTRATO (NOLOCK) ON SCONTRATO.CODCOLIGADA = SMATRICPL.CODCOLIGADA AND SCONTRATO.RA = SMATRICPL.RA AND SCONTRATO.IDHABILITACAOFILIAL = SMATRICPL.IDHABILITACAOFILIAL AND SCONTRATO.IDPERLET = SMATRICPL.IDPERLET
--AND SCONTRATO.STATUS <> 'S'
LEFT JOIN SBOLSAALUNO (NOLOCK) ON SBOLSAALUNO.CODCOLIGADA = SCONTRATO.CODCOLIGADA AND SBOLSAALUNO.RA = SCONTRATO.RA AND SBOLSAALUNO.CODCONTRATO = SCONTRATO.CODCONTRATO AND SBOLSAALUNO.IDPERLET = SCONTRATO.IDPERLET
LEFT JOIN SBOLSA (NOLOCK) ON SBOLSA.CODCOLIGADA = SBOLSAALUNO.CODCOLIGADA AND SBOLSA.CODBOLSA = SBOLSAALUNO.CODBOLSA
INNER JOIN SPARCELA (NOLOCK) ON SPARCELA.CODCOLIGADA = SCONTRATO.CODCOLIGADA AND SPARCELA.RA = SCONTRATO.RA AND SPARCELA.CODCONTRATO = SCONTRATO.CODCONTRATO AND SPARCELA.IDPERLET = SCONTRATO.IDPERLET
LEFT JOIN SLAN (NOLOCK) ON SPARCELA.CODCOLIGADA = SLAN.CODCOLIGADA AND SPARCELA.IDPARCELA = SLAN.IDPARCELA
LEFT JOIN FLAN (NOLOCK) ON SLAN.IDLAN = FLAN.IDLAN AND SLAN.CODCOLIGADA = FLAN.CODCOLIGADA AND FLAN.STATUSLAN = 1 AND FLAN.IDFAT IS NULL
WHERE SALUNO.RA = '??????????' AND SPLETIVO.CODPERLET = '???????'
/*AND FLAN.STATUSLAN <> '1'*/
No aguardo
Att.