2011-08-23 72 views
4

背景:我正在MS Access中创建一个查询。我的问题是我有一个表记录了一个动作的开始时间,涉及的用户,问题中的项目和事务类型。对于每一个事件有四个冲压件本次活动的,两个用于每个项目和两个每种类型:见下表在具有多个列的查询中选择个别独立列

Table of Data

我想创建查询显示一个记录每个开始时间与用户和每个匹配项目。但是,这是一个基本的例子,可能会有更多的用户,项目或类型。

查询我现在有低于它的结果:

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")); 

Query

正如你所看到的查询是接近,但仍有每个开始时间两枚邮票。表面上,每个项目有两个作为连接,抓取每个项目值并将其连接到另一个值。

作为警告我的问题,我无法更改表值或原始数据,所以我正在寻找我的查询中的programatic解决方案。我想知道是否有一种方法可以从结果中选择不同的开始时间,而其他列也是不同的,或者其他一些明智的解决方案来解决这个问题?

谢谢

回答

1

变化And (CIN.Item)<>[CIN2].[Item])And (CIN.Item)<[CIN2].[Item])。这样可以避免重复的对,因为只允许CIN.Item在CIN2.Item之前的行按ABC顺序排列。

+0

感谢您的回复,这不是我期待的答案,但是对查询进行了一些调整,我将提取需要的信息,但如果有方法可以选择某个人,我仍然会对此感兴趣DISTINCT值。再次感谢。 – Madullah

相关问题