Advertisement
rsbernini

DeclareAlunoAlex

Apr 22nd, 2014
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 1.81 KB | None | 0 0
  1. DECLARE
  2.   vRA ALUNO.RA%TYPE;
  3.   vNOME ALUNO.NOME%TYPE;
  4.   vDCODE TBDISCIPLINA.CODIGO%TYPE;
  5.   vDDESC TBDISCIPLINA.DESCRICAO%TYPE;
  6.   vAULAPREV TBFALTA.AULAS_PREVISTAS%TYPE;
  7.   vAULAPRES TBFALTA.TOTAL_PRESENCA%TYPE;
  8.   vSITUACAO TBSITUACAO.SITUACAO%TYPE;
  9.   vMEDIA NUMERIC(10,2);
  10.   vPRESENCA NUMERIC(10,2);
  11.         CURSOR ALUNO_CURSOR IS SELECT RA, NOME FROM ALUNO;
  12. BEGIN
  13.         DELETE FROM TBSITUACAO;
  14.         OPEN ALUNO_CURSOR;
  15.         LOOP
  16.                 FETCH ALUNO_CURSOR INTO vRA, vNOME;
  17.                 EXIT WHEN ALUNO_CURSOR%NOTFOUND;
  18.                 DBMS_OUTPUT.PUT_LINE('R.A.: ' || vRA);
  19.     FOR D IN (SELECT DISCIPLINA, TBDISCIPLINA.DESCRICAO AS DESCRICAO, NOTA_SEM1, NOTA_SEM2 FROM TBNOTA
  20.               INNER JOIN TBDISCIPLINA ON (TBDISCIPLINA.CODIGO = TBNOTA.DISCIPLINA)
  21.               WHERE (TBNOTA.RA = vRA)) LOOP
  22.       vMEDIA := (D.NOTA_SEM1 + D.NOTA_SEM2) / 2.0;
  23.       DBMS_OUTPUT.PUT_LINE('Disciplina: ' || D.DESCRICAO);
  24.       DBMS_OUTPUT.PUT_LINE('Media Anual: ' || vMEDIA);
  25.       SELECT AULAS_PREVISTAS, TOTAL_PRESENCA INTO vAULAPREV, vAULAPRES FROM
  26.             TBFALTA WHERE (TBFALTA.RA = vRA);
  27.       vPRESENCA := (vAULAPRES * 100.0) / vAULAPREV;
  28.       DBMS_OUTPUT.PUT_LINE('Frequencia: ' || vPRESENCA);
  29.       IF vPRESENCA >= 75.0 THEN IF vMEDIA >= 6.75 THEN vSITUACAO := 'Aprovado';
  30.         ELSIF vMEDIA >= 4.0 THEN vSITUACAO := 'Exame';
  31.         ELSE vSITUACAO := 'Reprovado por nota';
  32.         END IF;
  33.       ELSE IF vMEDIA >= 4.0 THEN vSITUACAO := 'Reprovado por falta';
  34.         ELSE vSITUACAO := 'Reprovado por nota/falta';
  35.         END IF;
  36.       END IF;
  37.       DBMS_OUTPUT.PUT_LINE('Situação: ' || vSITUACAO);
  38.       NSERT INTO TBSITUACAO(RA, DISCIPLINA, MEDIA_ANUAL, PRESENCA, SITUACAO)
  39.         VALUES (V_RA, D.DESCRICAO, V_MEDIA, V_PRESENCA, V_SITUACAO);
  40.         END LOOP;
  41.   CLOSE ALUNO_CURSOR;
  42. END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement