我和埃鲁西恩旗一起工作,我很难计算GPA。(横幅是学术机构使用的ERP。)
GPA可以在许多内置到旗中的视图中找到,包括AS_STUDENT_DATA。然而,这些观点是非常缓慢的,我们有几个报告运行了几次,那里只需要GPA。我试图提取GPA,但我得到的值并不都符合视图中的内容。
请注意,我能够计算一个GPA使用一个在网上的许多来源之一,但是我的值不完全匹配值在班纳视图。(换句话说,我不是在问如何计算GPA,这很容易,而且有很好的文档记录,而是问在班纳是如何做到的。)
我有这一点,它给出了接近但并非所有正确的值:
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有人处理过这个问题吗?你知道班纳是怎么做到的吗?
发布于 2016-10-24 18:47:47
您可以对横幅使用内置函数。它在一个叫做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-术语-不言自明
如果你不想那么具体的话,大多数输入都可以是空的。
例子:
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;希望这能有所帮助。
发布于 2018-04-16 23:27:55
如果实际或最终GPA已经计算,则从学术史表( SHRTCKN、SHRTCKG、SHRTCKL)中获得最终成绩,然后从SHRTGPA和SHRLGPA表(分别按术语和级别计算)获得GPA。
如果您需要重新计算GPA,那么您将使用带有pidm和term的shkcgpa.p_term_gpa参数。因此,对这两个GPA进行了重新计算。
发布于 2015-08-14 17:10:03
这是个猜测。希望离得更近。
SELECT
PIDM, LEVL_CODE,
round(sum(TOTAL_POINTS) / sum(TOTAL_CREDITS), 2) AS GPA,
sum(TOTAL_POINTS) AS TOTAL_POINTS, sum(TOTAL_CREDITS) AS TOTAL_CREDITS
FROM (
SELECT
SFRSTCR.SFRSTCR_PIDM AS PIDM, SHRGRDE_LEVL_CODE AS LEVL_CODE,
sum(SHRGRDE.SHRGRDE_QUALITY_POINTS * SFRSTCR.SFRSTCR_CREDIT_HR) AS TOTAL_POINTS,
sum(SFRSTCR.SFRSTCR_CREDIT_HR) AS TOTAL_CREDITS
FROM
SFRSTCR INNER JOIN SHRGRDE ON SFRSTCR.SFRSTCR_GRDE_CODE = SHRGRDE.SHRGRDE_CODE
WHERE
SHRGRDE_GPA_IND = 'Y' AND SFRSTCR.SFRSTCR_RSTS_CODE IN ('RE', 'RW', 'RR')
GROUP BY
SFRSTCR.SFRSTCR_PIDM, SHRGRDE_LEVL_CODE
) GT
WHERE TOTAL_CREDITS > 0 -- Prevent x/0 errors
GROUP BY PIDM, LEVL_CODEhttps://stackoverflow.com/questions/32015035
复制相似问题