2012-09-14 4 views
2

내 테이블의 필드에는 CTN_NUM 및 PO_NUM의 두 필드가 있습니다. 각각의 PO_NUM은 최소한 하나 이상의 CTN_NUM을 가지며, 더 명확하게 또는 반복 될 수 있습니다. 주어진 CTN_NUM은 하나 이상의 PO_NUM을 가질 수 없습니다. 즉, 일대 다 관계입니다. PO_NUM 당 고유 한 CTN_NUM 수를 나타내는 쿼리를 만들고 싶습니다. 나는이 포럼에서 다른 스레드뿐만 아니라 http://blogs.office.com/b/microsoft-access/archive/2007/09/19/writing-a-count-distinct-query-in-access.aspx을 보았으며 아무 것도이 정확한 문제를 해결하지 못하는 것 같습니다. 가 여기에 내가 시도 내용은 다음과 같습니다다른 필드에서 Group By와 Microsoft Access의 고유 한 집계 쿼리

A)는

SELECT PO_NUM, Count(CTN_NUM) AS CountOfCTN_NUM 
FROM tempSpring_ASN 
GROUP BY PO_NUM; 

이것은 그들이 고유하지 않은 경우에도, PO_NUM 당 ALL CTN_NUMs의 수를 반환합니다. 이 Access에서, 다른 RDBMS 년대에 작동 할 수 있지만

B)

SELECT PO_NUM, Count(DISTINCT CTN_NUM) AS CountOfCTN_NUM 
FROM tempSpring_ASN 
GROUP BY PO_NUM; 

나는 구문 오류가 발생합니다.

C)

SELECT COUNT(*) 
FROM 
(SELECT DISTINCT CTN_NUM AS cn 
FROM tempSpring_ASN); 

이, 테이블에 PO_NUM에 구별하지 별개 CTN_NUM의의 합계를 반환합니다.

C와 동일 D), 그러나 BY 그룹과는 :

SELECT COUNT(*) 
FROM 
(SELECT DISTINCT CTN_NUM AS cn 
FROM tempSpring_ASN) 
GROUP BY PO_NUM; 

이것은 PO_NUM 저를 묻는 메시지를 표시합니다.

상담 해주실 수 있습니까? 감사.

답변

1

이 하나를 시도

이 또한해야
SELECT PO_NUM, COUNT(*) AS CountOfCTN_NUM  
FROM (
    SELECT PO_NUM, CTN_NUM 
    FROM tempSpring_ASN 
    GROUP BY PO_NUM, CTN_NUM 
) a 
GROUP BY PO_NUM; 

작업 : D가에 구문 오류가 있습니다

SELECT PO_NUM, COUNT(*) AS CountOfCTN_NUM 
FROM (
    SELECT DISTINCT PO_NUM, CTN_NUM 
    FROM tempSpring_ASN 
) a 
GROUP BY PO_NUM; 
+0

두 솔루션 모두 완벽하게 작동했습니다. 감사! – as9876

0

편지. 서브 쿼리에 PO_NUM이 없으므로 group by를 사용할 수 없습니다. 하위 쿼리가 PO_NUM에 누락되었을 수 있습니다.

관련 문제