2012-12-26 5 views
4

내가 수리를 위해 반환되는 항목을 추적, 그래서 처분 문제를 추적하는 데 필요한 테이블을 가지고 있고 우리는 밖으로 :카운트 양

 
Table Name: RMAItems 
id | RMANbr | PartNbr | RecvDate | 
----------------------------------------- 
1 | 12345 | 456-003 | 12-21-2012 | 
2 | 12345 | 434-007 | 12-21-2012 | 
3 | 12346 | 422-010 |    | 
4 | 12347 | 421-540 | 12-21-2012 | 
5 | 12347 | 460-000 |    | 
6 | 12348 | 459-006 | 12-26-2012 | 
7 | 12349 | 439-007 |    | 
8 | 12349 | 435-006 |    | 
항목을 받고 출하시

'Recv Date'열은 세 가지 중에서 유일하게 NULL 일 수 있습니다 (즉, 값 없음). ID는 기본 키 (중복 없음)이고 RMA Nbr 열에는 중복이있을 수 있습니다 (고객에게 할당 된 RMA Nbr 당 여러 항목이있을 수 있음). Recv Date 열은받은 것으로 표시하고 양식이 다른 쿼리를 통해 자동으로 날짜에 채워질 때까지 NULL이 될 수 있습니다.

Recv Date 필드가 NULL 인 RMA Nbr 열에있는 개별 레코드의 수를 계산하기 위해 Access 2003에서 쿼리가 필요합니다 (회사가 좋지 않아 지금 업그레이드 할 수 없습니다). 모든 상품을받지 못한 RMA Nbr의 금액). 위 데이터베이스에서 필요한 쿼리를 실행하려면 3 개의 RMA Nbr에 항목이있는 3 개가 있어야하므로 3을 반환 할 것으로 기대합니다.

나는 성공없이 다음과 같은 쿼리를 시도했다 :

 
SELECT Count(*) 
FROM RMAItems 
WHERE RecvDate Is Null; 

는 (반환 4)

 
SELECT Count(*) 
FROM (SELECT DISTINCT RMANbr FROM RMAItems) 
WHERE RecvDate Is Null; 

(이 쿼리가 실행

 
SELECT Count(RMANbr) 
FROM RMAItems 
WHERE RecvDate Is Null; 

(반환 4) 텍스트 상자가있는 대화 상자가 나타나고 텍스트 상자 위에 'RecvDate'가 표시됩니다.

언급했듯이 Windows XP Pro SP3 시스템에서 MS Access 2003을 사용하고 있습니다.

나는 Google 검색을 일부 수행했지만 필요한 작업을 수행 할 쿼리를 만들지 않았습니다 (위의 하위 쿼리가 작동하지 않는 방식입니다). 당신이 제공 할 수있는 어떤 도움도 최고 일 것입니다.

감사합니다.

답변

2

세 번째 샘플과 비슷한 방법을 사용하지만 WHERE 절을 하위 쿼리로 이동합니다. RecvDate에 대한 매개 변수 대화 상자가 표시된 이유는 해당 필드가 하위 쿼리 SELECT 목록에 포함되지 않았으므로 부모 쿼리에서 알 수 없거나 사용할 수 없기 때문입니다.

SELECT Count(*) 
FROM 
    (
     SELECT DISTINCT RMANbr 
     FROM RMAItems 
     WHERE RecvDate Is Null 
    ) AS sub; 
+0

고맙습니다! 완전한! – Jguy