2017-05-08 95 views
0

我想在Access 2013中编写一个查询来标记第一次单词显示为“是”且所有后续时间显示为“否”。我在下面包含了一个示例。 “不同”列是我希望我的查询生成的。在Access中标记重复

谢谢


Word  Distinct 
First  Yes 
Second Yes 
First  No 
Third  Yes 
+0

是否有任何其他字段用作主键?数据如何分类? – SandPiper

+0

根据您在标记重复值时的目的,您可能希望使用“Group By”子句和其他聚合SQL函数(如“COUNT”)来查找聚合查询以查找和/或处理重复项。 –

回答

1

这里有一个办法:

SELECT *, IIf(DMin("ID","Table1","[Word]='" & [Word] & "'")=[ID],"Yes","No") AS FirstWord 
FROM Table1; 

另:

SELECT *, IIf([ID] = (SELECT TOP 1 ID FROM Table1 AS Dupe WHERE Dupe.Word = Table1.Word ORDER BY Dupe.Word, Dupe.ID), "Yes", "No") AS FirstWord FROM Table1; 

DISTINCT是一个保留字,所以我用它作为避免字段名称。

+0

这当然假定有一个单列主键[ID],并且数据源将是一个表,而这两者都不是由OP指示的。在任一查询中,您还应该使用'ORDER BY [ID]'确保第一个事件真正先排序。 (即使可能按照ID进行排序,除非它在ORDER BY子句中指定,否则不能保证。如果源对象不是直接表,而是另一个查询,则尤其如此。) –

+0

即使不是已经存在目前,ID字段易于添加自动编号。交叉发布在http://www.accessforums.net/showthread.php?t=65965 – June7