将 SQL 中具有相同 ID 的不同列的字段相乘?

Multiplying fields from separate columns which have the same ID in SQL?

我有两个 table 由一个 ID 连接...

table 1

- Assessment ID 
- Module ID 
- Assessment Weighting

table 2

- ID 
- AssessmentID
- ModuleID
- UserID
- MarkFrom100 

一个评估可以有很多学生参加评估。 例如 一个模块有两个评估,一个占 60%,另一个占 40%。在 table 2 中,我想从 table 1 中获取权重值并将其与 100 中的标记相乘。

SELECT * FROM Assessment, ModuleAssessmentUser WHERE 
INNER JOIN moduleassementuser.assessmentID on Assessment.assessmentID
MULTIPLY AssessmentWeighting BY MarkFrom100 AS finalmark
UserID = 1

我知道这有点过时了,但我真的不知道还能怎么办。

我的 SQL 知识有限,如有任何帮助,我们将不胜感激!

您可以在查询中使用 SUM 函数,该函数将在子查询中对特定组的所有数据求和,您可以将总和乘以权重

子查询:

SELECT ModuleID, AssessmentID, UserID, SUM(MarkFrom100) as Total
    FROM Table_2
    GROUP BY ModuleID

然后将此子查询用作主查询中的 table :

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 语句在注释中。如果你想要整个数据,删除它,如果你想要特定数据,使用它^^


注意:

我没有你的数据库,所以可能需要一些时间,但主要思想就在那里