我有以下 SQL 表达式:
SELECT PROFESSOR_NAME, SUBJECT_NAME, NUMBER_OF_CREDITS, PERCENT,
(SELECT COUNT(STUDENTID)
FROM SUBJSTUD
WHERE SUBJSTUD.SUBJECTID = SUBJECT.SUBJECT_ID) AS NUMBER_OF_STUDENTS,
0.4*NUMBER_OF_CREDITS*PERCENT*(
SELECT COUNT(STUDENTID)
FROM SUBJSTUD
WHERE SUBJSTUD.SUBJECTID = SUBJECT.SUBJECT_ID)*18/120) AS PAYMENT_PER_SUBJECT,
SUM(0.4*NUMBER_OF_CREDITS*PERCENT*(
SELECT COUNT(STUDENTID)
FROM SUBJSTUD
WHERE SUBJSTUD.SUBJECTID = SUBJECT.SUBJECT_ID)*18/120) AS PAYMENT_PER_PROFESSOR
FROM SUBJECT, PROFESSOR, TEACHES
WHERE PROFESSOR.PROFESSOR_ID = TEACHES.PROFESSORID
AND SUBJECT.SUBJECT_ID = TEACHES.SUBJECTID
AND POCETOK_UCEBNA = :UCEBNA_GODINA
AND SEMESTAR = :SEMESTAR
AND PROFESsOR.STUDISKAPROGRAMA = :STUDISKAPROGRAMA
GROUP BY PROFESSOR_NAME, SUBJECT_NAME, NUMBER_OF_CREDITS, PERCENT
参数取自列表框。如果没有 SUM,它可以正常工作,但我需要最后一次计算来生成一份报告,该报告将汇总每位教授每门学科的所有付款。问题可能出在子表达式 ( SELECT COUNT(STUDENTID) FROM SUBJSTUD WHERE SUBJSTUD.SUBJECTID = SUBJECT.SUBJECT_ID
) 中,但我不知道如何解决。