一个表中的字段的SUM,GROUP BY第二个表中的字段

时间:2013-03-02 02:09:29

标签: sql vb6 ado

我找到了如何在一个表格中使用SUMGROUP BY。我尝试做的是根据第二个表(Marks.m_GPA)中的字段在一个表中求和一个字段(Curriculum.[c_Subject Group])。

我有一个表格,其中包含名为Marks的学生的所有结果以及另一个名为Curriculum的表格。两个表都有共同的主题代码(c_Codem_Code),Curriculum表有一个字段[c_Subject Group]。我想得到每个m_GPA的所有[c_Subject Group]值和结果GROUP BY [c_Subject Group]的总和。

所有字段都是字符串(文本)。

这是一个ADO SQL VB6应用程序,我使用Access的MS Jet引擎。我通常尝试使用Access运行查询来预先测试查询,ACCESS似乎接受我的语法,但结果是一个空表。

以下是查询:

SELECT 
   Curriculum.[c_Subject Group], 
   Sum([m_GPA]) AS Total_GPA 
FROM Curriculum 
   INNER JOIN Marks ON 
      Curriculum.c_Code = Marks.m_Code 
WHERE Curriculum.[c_Subject Group]= "1"
GROUP BY Curriculum.[c_Subject Group];

即使我尝试Sum(cdbl(Marks.[m_GPA])),结果也是一张空表。

1 个答案:

答案 0 :(得分:1)

试试这个。

SELECT 
     Curriculum.[c_Subject Group],
     Marks.Total_GPA
 FROM Curriculum
 LEFT JOIN (
     SELECT 
     m_Code,
     Sum([m_GPA]) AS Total_GPA
     FROM Marks
     GROUP BY m_Code
)Marks
 ON Curriculum.c_Code = Marks.m_Code 
 WHERE Curriculum.[c_Subject Group]= '1'