当所有行都相同时访问查询不同的记录

Access query distinct record when all rows same

不确定如何正确地表达 question/description,因此将举例说明。

在 Access 中,我需要 运行 查询 return 一条记录,如果(2 列)select 不同的所有行都相同。

所以:

风格 |旗帜

123 | Y

123 | N

123 | Y

456 | Y

456 | Y

456 | Y

789 | N

789 | N

789 | N

我只想 return 456 一次,因为“456”样式的所有版本都有一个标志 = 'Y'。样式“123”不会被 return 编辑,因为它混合了 'Y' 和 'N'。不应 return 编辑样式“789”,因为所有实例都是 'N'。我只是想 return "all 'Y', only 'Y' records"

将查询拆分为 3 个部分

第 1 部分,按样式和标志分组(计算行数以获取信息)将其另存为 Query1

SELECT Table1.Style, Table1.Flag, Count(Table1.ID) AS CountOfID
FROM Table1
GROUP BY Table1.Style, Table1.Flag;

第 2 部分 - 按样式分组,计算标记记录的数量,然后过滤以仅显示标记计数为 1 的记录。将其另存为 Query2

SELECT Query1.Style, Count(Query1.Flag) AS CountOfFlag
FROM Query1
GROUP BY Query1.Style
HAVING (((Count(Query1.Flag))=1));

第 3 部分 - 返回原始 table,并过滤以仅显示带有 Y 标志的样式。

SELECT Table1.Style, Table1.Flag
FROM Query2 INNER JOIN Table1 ON Query2.Style = Table1.Style
GROUP BY Table1.Style, Table1.Flag
HAVING (((Table1.Flag)="Y"));

(Table1、Query1、Query2、Query3 名称可以替换为对您的问题集更有意义的名称)。