2011-08-23 83 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

相關問題