我正在与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是如何做到的吗?
答案 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都会重新计算。