私のテーブルのフィールドには、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の入力を求められます。
あなたがアドバイスしていただけますか?ありがとう。