在 Access 中有多个列的查询中选择单个不同的列
Posted
技术标签:
【中文标题】在 Access 中有多个列的查询中选择单个不同的列【英文标题】:SELECT Individual Distinct Column in a Query with multiple Columns in Access 【发布时间】:2011-08-23 20:17:57 【问题描述】:背景:我正在 MS Access 中创建一个查询。我的问题是我有一个表,其中记录了操作的开始时间、涉及的用户、有问题的项目和交易类型。对于每个事件,该事件有四个标记,每个项目两个,每个类型两个:下表
我想创建一个查询,该查询显示每个 StartTime 与用户和每个匹配项的一条记录。但是,这是一个基本示例,可能会有更多用户、项目或类型。
我目前的查询结果如下:
SELECT DISTINCT (CIN.StartTime), CIN.User, CIN.Item, CIN2.Item
FROM Query2 AS CIN INNER JOIN Query2 AS CIN2 ON CIN.StartTime = CIN2.StartTime
WHERE (((CIN.Item)<>"" And (CIN.Item)<>[CIN2].[Item]) AND ((CIN.Type)="ITEM" Or (CIN.Type)="CALL") AND ((CIN2.Type)="ITEM" Or (CIN2.Type)="CALL"));
如您所见,查询已关闭,但每个 StartTime 仍有两个标记。从表面上看,每个项目两个作为连接,获取每个项目值并将其连接到另一个值。
作为对我的问题的警告,我无法更改表值或原始数据,因此我正在我的查询中寻找编程解决方案。我想知道是否有一种方法可以从结果中选择不同的 StartTime 而其他列也不同,或者有其他巧妙的解决方案来解决这个问题?
谢谢
【问题讨论】:
【参考方案1】:将And (CIN.Item)<>[CIN2].[Item])
更改为And (CIN.Item)<[CIN2].[Item])
。这将通过只允许 CIN.Item 在 CIN2.Item 之前的行以 ABC 顺序来避免您得到的重复对。
【讨论】:
感谢您的回复,这不是我所期待的答案,但对查询稍作调整后,我将提取我需要的信息,尽管如果有办法我仍然会感兴趣访问以选择单独的 DISTINCT 值。再次感谢。以上是关于在 Access 中有多个列的查询中选择单个不同的列的主要内容,如果未能解决你的问题,请参考以下文章