我表中的字段中有 2 个字段,CTN_NUM 和 PO_NUM。每个 PO_NUM 至少有一个 CTN_NUM,可能更多——不同的或重复的。任何给定的 CTN_NUM 不能超过 1 个 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和 none 似乎解决了这个确切的问题。这是我尝试过的:
一个)
SELECT PO_NUM, Count(CTN_NUM) AS CountOfCTN_NUM
FROM tempSpring_ASN
GROUP BY PO_NUM;
这将返回每个 PO_NUM 的所有 CTN_NUM 的计数,即使它们不是唯一的。
二)
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);
这将返回与表不同的 CTN_NUM 的总和,而不是与 PO_NUM 不同的总和。
D) 与 C 相同,但使用 GROUP BY:
SELECT COUNT(*)
FROM
(SELECT DISTINCT CTN_NUM AS cn
FROM tempSpring_ASN)
GROUP BY PO_NUM;
这提示我输入 PO_NUM。
你能给些建议么?谢谢。