2013-07-03 5 views
1

하나에 여러 쿼리를 결합 내가 하나가 각 날짜에 대한 전체 기록을 보여줍니다 2003액세스

SELECT AttendanceQuery.AttendDate, Count(*) AS Absent 
FROM AttendanceQuery 
WHERE (((AttendanceQuery.Present)=False)) 
GROUP BY AttendanceQuery.AttendDate; 

SELECT AttendanceQuery.AttendDate, Count(*) AS Enrollment 
FROM AttendanceQuery 
GROUP BY AttendanceQuery.AttendDate; 

마이크로 소프트 Access에서 하나로 결합하려는 두 개의 질문이, 다른 하나는있는 사람들을 보여줍니다 결석으로 표시했다.

+0

이 두 쿼리를 하나의 테이블로 업데이트 하시겠습니까? 그리고 당신은 모든 기록을 보여주기를 원하며 그 기록들도 결석으로 표시된 기록을 보여줄 것입니까? – Grant

답변

0

하위 쿼리로 두 개의 쿼리를 사용하십시오. LEFT JOIN 결석 하위 쿼리에 대한 등록 하위 쿼리 ... 해당 날짜에 결석 여부가 기록되었는지 여부에 관계없이 모든 AttendDate 값에 대한 행을 반환합니다. 당신이 액세스 세션 내에서이 쿼리를 실행할 경우

SELECT e.AttendDate, e.Enrollment, a.Absent 
FROM 
    (
     SELECT a1.AttendDate, Count(*) AS Enrollment 
     FROM AttendanceQuery AS a1 
     GROUP BY a1.AttendDate 
    ) AS e 
    LEFT JOIN 
    (
     SELECT a2.AttendDate, Count(*) AS Absent 
     FROM AttendanceQuery AS a2 
     WHERE a2.Present=False 
     GROUP BY a2.AttendDate 
    ) AS a 
    ON e.AttendDate = a.attendDate; 

, 당신은 0으로 널에게 Absent 값을 표시 Nz(a.Absent, 0)를 사용할 수 있습니다. 외부 Access에서 쿼리를 실행하는 경우 IIf(a.Absent Is Null, 0, a.Absent)