2013-03-02 2 views
0

SUMGROUP BY을 하나의 테이블에서 사용하는 방법을 찾았습니다. 내가하려고하는 것은 두 번째 테이블 (Curriculum.[c_Subject Group])의 필드에 따라 하나의 테이블 (Marks.m_GPA)을 하나의 테이블에 합하는 것입니다.두 테이블의 GROUP BY 필드 내에서 필드의 합

학생들의 결과가 모두 Marks 인 테이블 하나와 Curriculum이라는 테이블이 있습니다. 두 테이블 모두 공통된 주제 코드 (c_Codem_Code)를 가지고 있으며, Curriculum 테이블에는 하나의 필드 [c_Subject Group]이 있습니다. 각각 m_GPA의 값을 각각 [c_Subject Group]GROUP BY [c_Subject Group]에 대해 각각 갖고 싶습니다.

모든 필드는 문자열 (텍스트)입니다.

Access의 MS Jet 엔진을 사용하는 ADO SQL VB6 응용 프로그램입니다. 나는 일반적으로 쿼리를 미리 테스트하기 위해 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

은 사람들이 실제로 그것을 읽고 도움을 얻도록 편집/포맷을 원할 수 있습니다. –

+0

c_Subject Group = "1"이면 결과가 반환됩니까? WHERE 기준없이 진술을 실행하고 결과를 확인하십시오. – sgeddes

답변

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'