2016-03-10 38 views
0

我在MS Access 2013中有一個包含多個不同列的表。作爲輸入到主表中的數據的一部分,在某些列中有重複。但是,當我根據狀態「填滿」行的數量時,我需要能夠排除其他列中具有相同值的那些數據。如何排除在其他行中具有匹配字段的行

------------------------------------------------------------ 
HeaderID | Date  | Number | EffectiveDate | Reg | Status 
------------------------------------------------------------ 
    2 | 01/01/2016| 100001 | 01/12/2015 | 01 | Ready 
    3 | 01/01/2016| 100001 | 01/12/2015 | 02 | Ready 
    4 | 02/02/2016| 100002 | 12/11/2015 | R | Pending 
    5 | 02/02/2016| 100002 | 12/11/2015 | T | Pending 
    6 | 02/02/2016| 100002 | 12/11/2015 | N | Pending 
    7 | 15/09/2015| 100003 | 30/11/2015 | 01 | Ready 
    8 | 14/09/2015| 100004 | 20/02/2016 | 01 | New 

我有下面的代碼基本已經:

Select 
    tbl_Progression.Status, 
    Count(tbl_Progression.HeaderID) AS CountofHeaderID 
From tbl_Progression 
Group By tbl_Progression.Status 

我期待能夠得到的結果看起來像下面用上面的例子中的數據,從而Status由計HeaderID但只有一次計數那些具有記錄相同DateNumberEffectiveDate(但不同Reg)看起來像這樣:

------------------------ 
Status | CountofHeaderID 
------------------------ 
Pending |  1 
Ready |  2 
New  |  1 

而不是當前有哪些代碼是這樣做的:

------------------------ 
Status | CountofHeaderID 
------------------------ 
Pending |  3 
Ready |  3 
New  |  1 

回答

2

MS Access不支持COUNT(DISTINCT)。但是,您可以使用DISTINCT(或GROUP BY)的子查詢:

Select p.Status, Count(*) as new_CountofHeaderID 
From (select distinct p.status, p.Date, p.Number, pEffectiveDate 
     from tbl_Progression as p 
    ) as p 
Group By p.Status; 
+0

非常感謝您。第一次工作。布朗尼爲你指點@Gordon Linoff – Wowdude

相關問題