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

时间:2015-03-31 21:29:40

标签: ms-access select distinct

不确定如何正确地表达问题/描述,因此将通过示例提问。

在Access中,如果(2列)选择distinct的所有行都相同,我需要运行查询以返回一条记录。

所以:

风格|标志

123 | ÿ

123 | Ñ

123 | ÿ

456 | ÿ

456 | ÿ

456 | ÿ

789 | Ñ

789 | Ñ

789 | Ñ

我只想返回一次456因为所有版本的' 456'风格有一个标志=' Y'。风格' 123'不会被退回,因为它是混合的' Y'和' N'。风格' 789'不应该退回,因为所有实例都是N' N' N' N'我只想回复所有' Y'只有' Y'记录"

1 个答案:

答案 0 :(得分:0)

将查询拆分为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部分 - 加入回原始表格,并过滤以仅显示带有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名称可替换为对您的问题集更有意义的名称)。