我有两个由ID加入的表...
表1
- Assessment ID
- Module ID
- Assessment Weighting
表2
- ID
- AssessmentID
- ModuleID
- UserID
- MarkFrom100
评估可以让很多学生参加评估。 例如 一个模块有两个评估,一个值60%,另一个值40%。在表2中,我想从表1中获取加权值,并将其与100中的标记相乘。
SELECT * FROM Assessment, ModuleAssessmentUser WHERE
INNER JOIN moduleassementuser.assessmentID on Assessment.assessmentID
MULTIPLY AssessmentWeighting BY MarkFrom100 AS finalmark
UserID = 1
我知道这已经过时了,但我真的不知道怎么回事。
我的SQL知识有限,所以任何帮助都表示赞赏!
答案 0 :(得分:0)
您可以在查询中使用SUM
函数,它将对子查询中某个组的所有数据求和,这样您就可以将总和乘以权重
子查询:
SELECT ModuleID, AssessmentID, UserID, SUM(MarkFrom100) as Total
FROM Table_2
GROUP BY ModuleID
然后将此子查询用作主查询中的表:
SELECT T1.Assessment_ID, T1.ModuleID, Q1.UserID (Q1.Total * T1.Assessment_Weighting) as FinalMark
FROM (SELECT ModuleID, UserID, SUM(MarkFrom100) as Total
FROM Table_2
GROUP BY ModuleID) AS Q1
INNER JOIN Table_1 as T1 on T1.ModuleID = Q1.ModuleID
-- WHERE T1.ModuleID = 2 -- a particular module ID
GROUP BY ModuleID;
请注意,WHERE
语句正在评论中。如果您想要整个数据,请将其删除,如果您需要特定数据,请使用它^^
我没有你的数据库,所以它可能需要一些tweek,但主要的想法是