在 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)&lt;&gt;[CIN2].[Item]) 更改为And (CIN.Item)&lt;[CIN2].[Item])。这将通过只允许 CIN.Item 在 CIN2.Item 之前的行以 ABC 顺序来避免您得到的重复对。

【讨论】:

感谢您的回复,这不是我所期待的答案,但对查询稍作调整后,我将提取我需要的信息,尽管如果有办法我仍然会感兴趣访问以选择单独的 DISTINCT 值。再次感谢。

以上是关于在 Access 中有多个列的查询中选择单个不同的列的主要内容,如果未能解决你的问题,请参考以下文章

单个查询从具有不同列的多个表中获取记录

从单个表中检索具有不同值的同一列的多个输出时的性能问题

Access查询中按不同列功能选择列

SAP HANA SQL - 将单个列的多个结果行合并为单个行

如何在单个查询中计算不同类型列的流数据帧的统计信息?

MS Access 03 - 更新查询条件的一个字段中有多个“ifs”?