Sql Microsoft Access中的不同聚合查询,分组依据位于不同字段上
在我的表格中有两个字段,CTN_NUM和PO_NUM。每个PO_NUM至少有一个CTN_NUM,可能更清晰或重复。任何给定的CTN数量不能超过1个。换句话说,它是一对多关系。我想创建一个查询,显示每个PO_NUM的唯一CTN_NUM的数量。我在这个论坛上也看到过其他线程,但似乎没有一个能够解决这个问题。 以下是我尝试过的: (A) 这将返回每个订单的所有CTN NUM的计数,即使它们不是唯一的 (B) 虽然这可能在其他RDBMS中工作,但在Access中我得到一个语法错误 (C) 这将返回CTN_NUM的总和,这些CTN_NUM与表不同,而与PO_NUM不同 D) 与C相同,但有一个GROUP BY:Sql Microsoft Access中的不同聚合查询,分组依据位于不同字段上,sql,ms-access,group-by,distinct,aggregate-functions,Sql,Ms Access,Group By,Distinct,Aggregate Functions,在我的表格中有两个字段,CTN_NUM和PO_NUM。每个PO_NUM至少有一个CTN_NUM,可能更清晰或重复。任何给定的CTN数量不能超过1个。换句话说,它是一对多关系。我想创建一个查询,显示每个PO_NUM的唯一CTN_NUM的数量。我在这个论坛上也看到过其他线程,但似乎没有一个能够解决这个问题。 以下是我尝试过的: (A) 这将返回每个订单的所有CTN NUM的计数,即使它们不是唯一的 (B) 虽然这可能在其他RDBMS中工作,但在Access中我得到一个语法错误 (C) 这将返回CTN
SELECT COUNT(*)
FROM
(SELECT DISTINCT CTN_NUM AS cn
FROM tempSpring_ASN)
GROUP BY PO_NUM;
这会提示我输入PO_NUM
你能给个建议吗?谢谢 试试这个:
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;
字母
D
有语法错误PO_NUM
在子查询中不存在,因此不能在其上使用group by。可能是子查询未命中PO_NUM
SELECT COUNT(*)
FROM
(SELECT DISTINCT CTN_NUM AS cn
FROM tempSpring_ASN)
GROUP BY PO_NUM;
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;