如何排除其他行中具有匹配字段的行

时间:2016-03-10 11:06:41

标签: sql ms-access

我在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

我希望能够使用上面的示例数据将结果看起来如下所示,StatusHeaderID计算,但只计算一次具有相同记录的记录DateNumberEffectiveDate(但不同的Reg)看起来像这样:

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

而不是当前代码正在做什么:

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

1 个答案:

答案 0 :(得分:2)

MS Access不支持INotifyPropertyChanged。但是,您可以使用带有COUNT(DISTINCT)(或DISTINCT)的子查询:

GROUP BY