2013-03-02 82 views
0

我发现如何在一个表内使用SUMGROUP BY。我试图做的是根据第二个表中的字段(Curriculum.[c_Subject Group])在一个表中总计一个字段(Marks.m_GPA)。一个表内的字段的总和,GROUP BY第二个表中的字段

我有一张桌子,名字分别为Marks和另一张名为Curriculum的表格。两个表的主题代码都是共同的(c_Codem_Code),Curriculum表有一个字段[c_Subject Group]。我想要得到每个[c_Subject Group]的所有m_GPA值的总和以及结果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

你听说过空白吗? – 2013-03-02 02:10:34

+0

可能要编辑/格式化,以便人们实际阅读并尝试提供帮助。 – 2013-03-02 02:13:56

+0

您确定c_Subject Group =“1”会返回任何结果吗?在没有WHERE标准的情况下运行您的语句并查看您收到的结果。 – sgeddes 2013-03-02 02:20:28

回答

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' 
相关问题