Ellucian Banner如何计算GPA?

时间:2015-08-14 16:49:12

标签: sql ellucian-banner

我正在与Ellucian Banner合作,我很难计算GPA。 (Banner是学术机构使用的ERP。)

GPA可以在Banner内置的许多视图中找到,包括AS_STUDENT_DATA。但是,这些视图非常慢,我们有一些报告只运行几次,只需要GPA。我正在尝试提取GPA,但我得到的值并不都与视图中的值相匹配。

请注意,我可以使用网络上的众多来源之一来计算GPA,但是我的值与完全匹配横幅视图中的值。 (换句话说,我不是在问如何计算一般的GPA,这很容易并且有详细记录,但是询问如何在Banner中完成。)

我有这个,它提供了接近但不完全正确的值:

    SELECT PIDM, 
        round(sum(TOTAL_POINTS)/sum(TOTAL_CREDITS), 2) AS GPA, 
        round(TOTAL_POINTS, 2) AS TOTAL_POINTS, TOTAL_CREDITS, LEVL_CODE   
    FROM (
        SELECT 
            SFRSTCR.SFRSTCR_PIDM AS PIDM, 
            sum(SHRGRDE.SHRGRDE_QUALITY_POINTS * SFRSTCR.SFRSTCR_CREDIT_HR) AS TOTAL_POINTS,
            sum(SFRSTCR.SFRSTCR_CREDIT_HR) AS TOTAL_CREDITS,
            SHRGRDE_LEVL_CODE AS LEVL_CODE
        FROM 
        INNER JOIN SHRGRDE ON SFRSTCR.SFRSTCR_GRDE_CODE = SHRGRDE.SHRGRDE_CODE AND SHRGRDE.SHRGRDE_GPA_IND = 'Y'
        WHERE SHRGRDE_GPA_IND = 'Y'   
          AND SFRSTCR.SFRSTCR_RSTS_CODE IN ('RE', 'RW', 'RR')
        GROUP BY SFRSTCR.SFRSTCR_PIDM, SHRGRDE_LEVL_CODE -- , SFRSTCR.SFRSTCR_CRN, SFRSTCR_TERM_CODE
      ) GT
      WHERE GT.TOTAL_CREDITS > 0 -- Prevent x/0 errors
      GROUP BY PIDM, TOTAL_POINTS, TOTAL_CREDITS, LEVL_CODE

有没有人解决过这个问题?知道Banner是如何做到的吗?

3 个答案:

答案 0 :(得分:1)

您可以使用横幅的内置功能。它在一个名为SHKSELS的包裹下。该函数名为F_SHRLGPA_VALUE。 SHKSELS的所有者是BANINST1。该功能的输入是pidm,信用等级,指标类型,GPA类型,请求类型,校园类型,术语。

这是一个细分,然后是一个使用示例。

输入1 - pidm - 自我解释

输入2 - 信用等级值 - 使用

找到选项
    select * from stvlevl;

输入3 - 指标类型 - 选项为GPA(计算GPA)或QP(质量点)

输入4 - GPA类型 - 使用

找到选项
    select distinct shrlgpa_gpa_type_ind from shrlgpa;

输入5 - 请求类型 - 选项为V(输入3的值)或HA(尝试的小时数)或HE(获得的小时数)或HP(通过的小时数)或H(朝向GPA的小时数)

输入6 - 校园类型 - 使用

找到选项
    select * from stvcamp;

输入7 - 术语 - 自我解释

如果你不想那么具体,那么大多数输入都可以是NULL。

实施例

    SELECT  SPRIDEN_ID as IS_NUMBER,
            SHKSELS.F_SHRLGPA_VALUE(SPRIDEN_PIDM,'01','GPA','I','V',NULL,NULL) as GPA
    FROM    SPRIDEN
    WHERE   SPRIDEN_CHANGE_IND IS NULL;

希望有所帮助。

答案 1 :(得分:0)

这是一个猜测。希望它更接近。

System.out.println("The highest value is "+highest+"");
System.out.println("It is found at index "+highestIndex+"");   // until now it works fine
String sql ="Select Day from menu where ID =?";
DatabaseConnection db = new DatabaseConnection();
Connection  conn =db.getConnection();
PreparedStatement  ps = conn.prepareStatement(sql);
ps.setInt(1, highestIndex); 
ResultSet rs = ps.executeQuery();
if (rs.next()) 
{  
    int kb=rs.getInt("Day"); 
    System.out.println(kb);
    if(kb==k) // k is a value getting from comboBox 
    {
        String sql1 ="Select * from placeseen where ID =?";
        DatabaseConnection db1 = new DatabaseConnection();
        Connection  conn1 =db1.getConnection();
        PreparedStatement  ps1 = conn.prepareStatement(sql);
        ps.setInt(1, highestIndex); 
        ResultSet rs1 = ps.executeQuery();
        if (rs1.next()) 
        {  
            String aaa=rs1.getString("place1");  
            String bbb=rs1.getString("place2");
            Tourism to =new Tourism();
            to.setPlace1(aaa);
            to.setPlace2(bbb);
            DispDay dc=new DispDay();

         }
         ps1.close();
         rs1.close();
         conn1.close();

     }
     else
     {
         System.out.print("N");
         System.out.println("Sorry!!!");
     }
 }
 ps.close();
 rs.close();
 conn.close();

答案 2 :(得分:0)

如果已经计算了真实或最终的GPA,那么过度发布banner8..x,那么它从学术历史表(SHRTCKN,SHRTCKG,SHRTCKL)获得了最终成绩,那么你可以从SHRTGPA和SHRLGPA表中获得GPA(计算得出)在学期和水平上尊重)

如果您需要重新计算GPA,那么您将使用 shkcgpa.p_term_gpa,带有pidm和term by parameters。因此,两次GPA都会重新计算。