从SQL中具有相同ID的单独列中乘以字段?

时间:2018-02-05 14:35:03

标签: sql join multiplying

我有两个由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知识有限,所以任何帮助都表示赞赏!

1 个答案:

答案 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,但主要的想法是