2

私のテーブルのフィールドには、CTN_NUMとPO_NUMの2つのフィールドがあります。各PO_NUMには、少なくとも1つのCTN_NUMがあり、場合によってはそれ以上のCTN_NUMがあります。任意のCTN_NUMに複数のPO_NUMを含めることはできません。言い換えれば、それは1対多の関係です。PO_NUMごとの一意のCTN_NUMの数を示すクエリを作成したいと思います。このフォーラムの他のスレッドやhttp://blogs.office.com/b/microsoft-access/archive/2007/09/19/writing-a-count-distinct-query-in-accessを見てきました。 aspxとnoneは、この正確な問題に対処しているようです。これが私が試したことです:

A)

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

これにより、一意でない場合でも、PO_NUMごとのすべてのCTN_NUMの数が返されます。

B)

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

これは他のRDBMSでも機能する可能性がありますが、Accessでは構文エラーが発生します。

C)

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

これは、PO_NUMとは異なる、テーブルとは異なるCTN_NUMの合計を返します。

D)Cと同じですが、GROUP BYがあります:

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

これにより、PO_NUMの入力を求められます。

あなたがアドバイスしていただけますか?ありがとう。

4

2 に答える 2

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;   

これも機能するはずです:

SELECT PO_NUM, COUNT(*) AS CountOfCTN_NUM   
FROM   (
    SELECT DISTINCT PO_NUM, CTN_NUM 
    FROM tempSpring_ASN
) a
GROUP BY PO_NUM;   
于 2012-09-14T14:19:37.900 に答える
0

LetterDに構文エラーがあります。PO_NUMサブクエリには存在しないため、groupbyを使用することはできません。サブクエリがを見逃している可能性がありますPO_NUM

于 2012-09-14T14:19:55.467 に答える