[SOLVED] Calculating percentage of grades for report
I need assistance computing a summary report with the grades for a specific term and the percentage of records that received a grade. For instance, C or Better - the count may be 1000 and next to it I want it to say that is 25% of the total amount of records that received this type of grade. D - the count is 700 and to say this is 20% of the total mount of records that received this type of grade and so forth . . . Below is what I have thus far.
JOIN AS_ACADEMIC_HISTORY_DETAIL.SUBJ_CODE AND AS_ACADEMIC_HISTORY_DETAIL.CRSE_NUMBER AND AS_ACADEMIC_HISTORY_DETAIL.CRN_KEY IN AS_ACADEMIC_HISTORY_DETAIL TO UNIQUE AS_CATALOG_SCHEDULE.SUBJ_CODE AND AS_CATALOG_SCHEDULE.CRSE_NUMBER AND AS_CATALOG_SCHEDULE.CRN_KEY IN AS_CATALOG_SCHEDULE AS J0 END
JOIN AS_ACADEMIC_HISTORY_DETAIL.SUBJ_CODE AND AS_ACADEMIC_HISTORY_DETAIL.CRSE_NUMBER AND AS_ACADEMIC_HISTORY_DETAIL.CRN_KEY IN AS_ACADEMIC_HISTORY_DETAIL TO UNIQUE SSBSECT_SUBJ_CODE AND SSBSECT_CRSE_NUMB AND SSBSECT_CRN IN SSBSECT AS J1 END
DEFINE FILE AS_ACADEMIC_HISTORY_DETAIL ADD GRADEA/A20V=IF GRDE_CODE_FINAL EQ 'A' OR 'B' OR 'C' THEN 'C or Better' ELSE IF GRDE_CODE_FINAL EQ 'D' THEN '%D's' ELSE IF GRDE_CODE_FINAL EQ 'F' OR 'FN' THEN '%F's' ELSE IF GRDE_CODE_FINAL EQ 'W' OR 'WU' THEN '%W's'; END
TABLE FILE AS_ACADEMIC_HISTORY_DETAIL HEADING CENTER "Fayetteville State University" "Grade Distribution Report for SUM 'CNT.AS_ACADEMIC_HISTORY_DETAIL.AS_ACADEMIC_HISTORY_DETAIL.GRDE_CODE_FINAL' AS 'GRADE,COUNT' BY AS_ACADEMIC_HISTORY_DETAIL.COLL_DESC AS 'COLLEGE' ACROSS 'AS_ACADEMIC_HISTORY_DETAIL.AS_ACADEMIC_HISTORY_DETAIL.GRDE_CODE_FINAL' AS 'GRADE'
WHERE ( AS_ACADEMIC_HISTORY_DETAIL.AS_ACADEMIC_HISTORY_DETAIL.TERM_CODE_KEY EQ '&TERM' ) AND (SSBSECT_SSTS_CODE EQ 'A') AND (AS_ACADEMIC_HISTORY_DETAIL.AS_ACADEMIC_HISTORY_DETAIL.GRDE_CODE_FINAL EQ 'A' OR 'B' OR 'C' OR 'D' OR 'F' OR 'FN' OR 'W' OR 'WU' );
ON AS_ACADEMIC_HISTORY_DETAIL.AS_ACADEMIC_HISTORY_DETAIL.COLL_DESC SUBTOTAL AS '*GRAND TOTAL'
ON AS_ACADEMIC_HISTORY_DETAIL.COLL_DESC SKIP-LINE
ON TABLE ROW-TOTAL AS 'TOTAL' ON TABLE COLUMN-TOTAL AS 'TOTAL' ON TABLE PCHOLD FORMAT EXL2K OPEN ON TABLE SET STYLE * TYPE=REPORT,FONT=ARIAL, TITLETEXT='Grades By College',$ ENDSTYLE FOOTING " " " " "This report pulls all grades for students by College/School" " " " " ENDThis message has been edited. Last edited by: FP Mod Chuck,
WebFOCUS 8 Windows, All Outputs
October 24, 2017, 09:18 AM
MartinY
This can be one way and where you can decide not to display the "Total" column (NOPRINT instead of : AS 'Total')
DEFINE FILE CAR
DUMMY /A1 = '';
NCNTRY /A10 = DECODE COUNTRY ('W GERMANY' 'West' 'JAPAN' 'West' 'FRANCE' 'France' 'ENGLAND' 'England' 'ITALY' 'Italy');
END
TABLE FILE CAR
SUM RETAIL_COST AS 'Total'
BY DUMMY NOPRINT
SUM RETAIL_COST
COMPUTE PCT_OF_TOT /P6.2C% = C2 / C1 * 100;
BY DUMMY NOPRINT
BY NCNTRY
END
-RUN
Note : when you share code, please use the code tag (right most icon on the ribbon) :
</>
WF versions : Prod 8.2.04M gen 33, Dev 8.2.04M gen 33, OS : Windows, DB : MSSQL, Outputs : HTML, Excel, PDF In Focus since 2007
October 24, 2017, 10:43 AM
jfr99
Example using GGSALES ...
DEFINE FILE GGSALES
T_M/M = DATE;
T_CNT/I7SC = 1;
C_CNT/I7SC = IF T_M EQ 1 OR 2 OR 3 OR 4 OR 5 THEN 1 ELSE 0;
D_CNT/I7SC = IF T_M EQ 6 THEN 1 ELSE 0;
F_CNT/I7SC = IF T_M EQ 7 OR 8 OR 9 THEN 1 ELSE 0;
W_CNT/I7SC = IF T_M EQ 10 OR 11 OR 12 THEN 1 ELSE 0;
END
-*
TABLE FILE GGSALES
SUM
C_CNT AS 'C or Better,Count'
COMPUTE C_PCT/D6.2% = C_CNT / T_CNT * 100; AS 'C or Better,Percent'
D_CNT AS '~~D~~,Count'
COMPUTE D_PCT/D6.2% = D_CNT / T_CNT * 100; AS '~~D~~,Percent'
F_CNT AS '~~F~~,Count'
COMPUTE F_PCT/D6.2% = F_CNT / T_CNT * 100; AS '~~F~~,Percent'
W_CNT AS '~~W~~,Count'
COMPUTE W_PCT/D6.2% = W_CNT / T_CNT * 100; AS '~~W~~,Percent'
T_CNT AS 'Total,Count'
COMPUTE T_PCT/D6.2% = T_CNT / T_CNT * 100; AS 'Total,Percent'
BY CATEGORY
ON TABLE RECOMPUTE
END