Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DECLARE
- vRA ALUNO.RA%TYPE;
- vNOME ALUNO.NOME%TYPE;
- vDCODE TBDISCIPLINA.CODIGO%TYPE;
- vDDESC TBDISCIPLINA.DESCRICAO%TYPE;
- vAULAPREV TBFALTA.AULAS_PREVISTAS%TYPE;
- vAULAPRES TBFALTA.TOTAL_PRESENCA%TYPE;
- vSITUACAO TBSITUACAO.SITUACAO%TYPE;
- vMEDIA NUMERIC(10,2);
- vPRESENCA NUMERIC(10,2);
- CURSOR ALUNO_CURSOR IS SELECT RA, NOME FROM ALUNO;
- BEGIN
- DELETE FROM TBSITUACAO;
- OPEN ALUNO_CURSOR;
- LOOP
- FETCH ALUNO_CURSOR INTO vRA, vNOME;
- EXIT WHEN ALUNO_CURSOR%NOTFOUND;
- DBMS_OUTPUT.PUT_LINE('R.A.: ' || vRA);
- FOR D IN (SELECT DISCIPLINA, TBDISCIPLINA.DESCRICAO AS DESCRICAO, NOTA_SEM1, NOTA_SEM2 FROM TBNOTA
- INNER JOIN TBDISCIPLINA ON (TBDISCIPLINA.CODIGO = TBNOTA.DISCIPLINA)
- WHERE (TBNOTA.RA = vRA)) LOOP
- vMEDIA := (D.NOTA_SEM1 + D.NOTA_SEM2) / 2.0;
- DBMS_OUTPUT.PUT_LINE('Disciplina: ' || D.DESCRICAO);
- DBMS_OUTPUT.PUT_LINE('Media Anual: ' || vMEDIA);
- SELECT AULAS_PREVISTAS, TOTAL_PRESENCA INTO vAULAPREV, vAULAPRES FROM
- TBFALTA WHERE (TBFALTA.RA = vRA);
- vPRESENCA := (vAULAPRES * 100.0) / vAULAPREV;
- DBMS_OUTPUT.PUT_LINE('Frequencia: ' || vPRESENCA);
- IF vPRESENCA >= 75.0 THEN IF vMEDIA >= 6.75 THEN vSITUACAO := 'Aprovado';
- ELSIF vMEDIA >= 4.0 THEN vSITUACAO := 'Exame';
- ELSE vSITUACAO := 'Reprovado por nota';
- END IF;
- ELSE IF vMEDIA >= 4.0 THEN vSITUACAO := 'Reprovado por falta';
- ELSE vSITUACAO := 'Reprovado por nota/falta';
- END IF;
- END IF;
- DBMS_OUTPUT.PUT_LINE('Situação: ' || vSITUACAO);
- NSERT INTO TBSITUACAO(RA, DISCIPLINA, MEDIA_ANUAL, PRESENCA, SITUACAO)
- VALUES (V_RA, D.DESCRICAO, V_MEDIA, V_PRESENCA, V_SITUACAO);
- END LOOP;
- CLOSE ALUNO_CURSOR;
- END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement