SELECT
STUDENT_NAME, SUBJECT, TYPE_OF_DISTRIBUTION,
SUM(POINTS) * WEIGHT_IN_PERCENTAGE / (COUNT(POINTS) * 100)
FROM
assignments a
JOIN
distributions d ON a.TYPE_OF_DISTRIBUTION = d.ASSIGNMENT_CATEGORY
GROUP BY
SUBJECT, TYPE_OF_DISTRIBUTION, STUDENT_NAME
ORDER BY
STUDENT_NAME ASC;
第 1 行出現錯誤:
ORA-00979:不是 GROUP BY 運算式
uj5u.com熱心網友回復:
您收到此錯誤WEIGHT_IN_PERCENTAGE。如果WEIGHT_IN_PERCENTAGE組中的每一行都相同,則可以使用(SUM(POINTS) * max(WEIGHT_IN_PERCENTAGE)),也可以將其與總和之前SUM(POINTS*WEIGHT_IN_PERCENTAGE)相乘:POINTS
SELECT
STUDENT_NAME, SUBJECT, TYPE_OF_DISTRIBUTION,
SUM(POINTS) * max(WEIGHT_IN_PERCENTAGE) / (COUNT(POINTS) * 100)
FROM
assignments a
JOIN
distributions d ON a.TYPE_OF_DISTRIBUTION = d.ASSIGNMENT_CATEGORY
GROUP BY
SUBJECT, TYPE_OF_DISTRIBUTION, STUDENT_NAME
ORDER BY
STUDENT_NAME ASC;
或者
SELECT
STUDENT_NAME, SUBJECT, TYPE_OF_DISTRIBUTION,
SUM(POINTS * WEIGHT_IN_PERCENTAGE) / (COUNT(POINTS) * 100)
FROM
assignments a
JOIN
distributions d ON a.TYPE_OF_DISTRIBUTION = d.ASSIGNMENT_CATEGORY
GROUP BY
SUBJECT, TYPE_OF_DISTRIBUTION, STUDENT_NAME
ORDER BY
STUDENT_NAME ASC;
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/492336.html
