访问-选择只有一列是不同的不同记录

问题描述 投票:0回答:3

我有一个具有两列(ID和活动)的Access表,其中包含如下数据:

ID  |  Active
------------
123 | 0
124 | 0
125 | 0
123 | 1
314 | 1
948 | 1

我想选择具有唯一ID(仅存在一次,而不仅仅是它们第一次存在)的不同记录,但是我还需要Active值。如果我做一个

SELECT DISTINCT ID from table1

我得到唯一的ID,但没有工作表。它还返回表中不唯一的123。如果我这样做:

SELECT DISTINCT * from table1

如果ID具有不同的有效值,则会得到重复的ID。我需要查询以获取唯一的ID及其关联的工作表值。它将返回以下内容:

ID  |  Active
------------
124 | 0
125 | 0
314 | 1
948 | 1

我需要将它们放入两个不同的表中并进行外部联接吗?有效仅是0或1。

select ms-access-2007 unique
3个回答
7
投票

使用此:

SELECT *
FROM table1
WHERE Id IN (SELECT Id FROM table1 GROUP BY Id HAVING COUNT(Id)=1)

1
投票

对于其他任何人,如果您希望每个ID至少返回一条记录,则此后将不重复。如果您想要Active的第一个或最后一个结果,则类似于CesarGon的子查询的查询将起作用。

SELECT ID, First(table1.Active) as Active FROM table1 GROUP BY ID;

那会让你想要你想要的:

ID  |  Active
------------
123 | 0
124 | 0
125 | 0
314 | 1
948 | 1

如果您要为活动的最后一个值:

SELECT ID, Last(table1.Active) as Active FROM table1 GROUP BY ID;

那会让你:

ID  |  Active
------------
123 | 1
124 | 0
125 | 0
314 | 1
948 | 1

0
投票

尝试从表1中选择SELECT ID ID,Max(ACTIVE)]

给予

© www.soinside.com 2019 - 2024. All rights reserved.