2012-07-26 181 views
1

我現在有一個表,如下所示:計數行獨特的價值觀和列在MS Access查詢

[BUSINESS_PROCESS_ID] [Error Type 1] [Error Type 2]  [Error Type 3] 
 PVT02     108         93 
    PVT02     98 
    PVT02     80    80     80 
    PVT02     80    
    PVT02     93 
    PVT02     27    80 
    PVT03     21 
    PVT03     102 
    PVT03     80 
    PVT03     80         102 
    PVT03     80 
    PVT03     80 
    PVT03     71 

基於每個Business_Process_Id,我在找寫一個查詢計算每個唯一的錯誤類型。 IE瀏覽器。查詢輸出應該如下所示:

[BUSINESS_PROCESS_ID] [Error Type] [Count of Unique Error Types Combined] 
 PVT02     108      1 
    PVT02     98      1 
    PVT02     80      5 
    PVT02     93      2 
    PVT02     27      1 
    PVT02     98      1 
    PVT03     21      1 
    PVT03     102     2 
    PVT03     80      4 
    PVT03     71      1 

正如你所看到的,我不關心次數是否是錯誤類型1,2或3。我正在尋找由Business_Process_ID得出的唯一錯誤類型(即98,80,108等)的數量。

有人可以幫忙嗎?謝謝。

回答

3

完成此操作的一種方法是使用UNION查詢首先將所有錯誤類型放入單個列中。然後,您可以使用簡單查詢將結果彙總到您希望看到的結果中。

SELECT BUSINESS_PROCESS_ID, [Error Type 1] as ErrorType 
FROM TableName 
UNION ALL 
SELECT BUSINESS_PROCESS_ID, [Error Type 2] as ErrorType 
FROM TableName 
UNION ALL 
SELECT BUSINESS_PROCESS_ID, [Error Type 3] as ErrorType 
FROM TableName 

將此保存爲查詢。

然後,使用此查詢類似如下的聚集查詢:

SELECT BUSINESS_PROCESS_ID, ErrorType, Count(ErrorType) as Number_Of_Errors 
FROM MyUnionQuery 
GROUP BY BUSINESS_PROCESS_ID, ErrorType 
+0

@HansUp好一點。編輯使用'UNION ALL'而不是UNION。 – 2012-07-27 00:27:43

+0

你們真棒,像魅力一樣工作! – JT2013 2012-07-27 12:34:05