Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MYSQL计算结果的总和_Mysql_Sum - Fatal编程技术网

MYSQL计算结果的总和

MYSQL计算结果的总和,mysql,sum,Mysql,Sum,我正在mysql 5.0中构建一个查询来计算学生的学期成绩。初始表studentItemGrades包含作业列表等,用于计算最终分数。每个作业都有一个可能的分数、等级和权重。计算应将所有类似加权项目分组,并根据任务到期的日期范围提供SUMGRADE/SUMPOSSIBLESCORE。我遇到的问题是所有单个加权分数的最终总和。例如,结果当前会产生以下结果: CourseScheduleID sDBID AssignedDate DueDate Weight Weighte

我正在mysql 5.0中构建一个查询来计算学生的学期成绩。初始表studentItemGrades包含作业列表等,用于计算最终分数。每个作业都有一个可能的分数、等级和权重。计算应将所有类似加权项目分组,并根据任务到期的日期范围提供SUMGRADE/SUMPOSSIBLESCORE。我遇到的问题是所有单个加权分数的最终总和。例如,结果当前会产生以下结果:

CourseScheduleID    sDBID   AssignedDate    DueDate     Weight  WeightedGrade
1           519     2010-08-26  2010-08-30  10  0.0783333333333333
1           519     2010-09-01  2010-09-03  20  0.176
1           519     2010-09-01  2010-09-10  70  0.574
从查询中:

SELECT CourseScheduleID, sDBID, AssignedDate, DueDate, Weight, 
((SUM(Grade)/SUM(PossibleScore))*(Weight/100)) AS WeightedGrade 
FROM studentItemGrades 
WHERE DueDate>='2010-08-23' 
AND DueDate<='2010-09-10' 
AND CourseScheduleID=1 
AND sDBID=519 
AND Status>0 
GROUP BY Weight
问题:我现在如何将加权的Grade输出中的三个结果相加?顺便说一下,这是一个更大的查询的一部分,用于计算特定校园内所有课程的所有分数


提前感谢您的帮助。

您可以使用子查询,如下所示:

SELECT SUM(WeightedGrade) FROM
(
  SELECT CourseScheduleID, sDBID, AssignedDate, DueDate, Weight, 
    ((SUM(Grade)/SUM(PossibleScore))*(Weight/100)) AS WeightedGrade 
  FROM studentItemGrades 
  WHERE DueDate>='2010-08-23' 
  AND DueDate<='2010-09-10' 
  AND CourseScheduleID=1 
  AND sDBID=519 
  AND Status>0 
  GROUP BY Weight
) t1

为了对这三个结果求和,您需要使用另一个带有group by的select重新查询此select的结果。这可以通过使用子查询使用单个sql语句来完成

SELECT sq.CourseScheduleID, sq.sDBID, SUM(sq.WeightedGrade) as FinalGrade
FROM
(
  SELECT CourseScheduleID, sDBID, AssignedDate, DueDate, Weight, 
         ((SUM(Grade)/SUM (PossibleScore))*(Weight/100)) AS WeightedGrade 
    FROM studentItemGrades WHERE DueDate>='2010-08-23' AND DueDate<='2010-09-10' 
         AND CourseScheduleID=1 AND sDBID=519 AND Status>0 GROUP BY Weight
) AS sq
GROUP BY sq.CourseScheduleID, sq.sDBID

天哪!谢谢JL。我试过所有显而易见的事情。是的,就是这样。谢谢