不确定如何正确地表达问题/描述,因此将通过示例提问。
在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'记录"
答案 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名称可替换为对您的问题集更有意义的名称)。