Access 2013的SQL查询帮助

时间:2015-09-16 06:16:03

标签: sql ms-access-2013

我有一张桌子

ID    | Rev Date   | Rev Status | Details 
1     | 12/05/2013 | ACTIVE     | A
2     | 03/05/2015 | REVIEW     | B
3     | 04/05/2013 | ACTIVE     | C
4     | 05/05/2015 | REVIEW     | A
5     | 06/08/2015 | ACTIVE     | C
6     | 05/08/2014 | ACTIVE     | B

我想获得所有记录,其中存在Status ACTIVE和REVIEW的条目。

1     | 12/05/2013  |ACTIVE     | A
5     | 05/05/2015  |REVIEW     | A

6     | 05/08/2014  |ACTIVE     | B
2     | 03/05/2015  |REVIEW     | B

有人可以帮忙解决这个问题。

1 个答案:

答案 0 :(得分:2)

好的,为了获得具有ACTIVE和REVIEW状态的Detail组,您需要使用子查询(或派生表)来过滤掉具有这两种状态的Detail组,然后将其用作输入以获取其余的的信息。

一种方法:

select * from t 
where details in (
  select Details 
  from t 
  group by Details
  having sum(iif([rev status] = 'ACTIVE', 1, 0)) > 0
     and sum(iif([rev status] = 'REVIEW', 1, 0)) > 0
) ;

根据您的示例数据,这将返回详细信息A和B的行,因为它们具有两种状态但排除了详细信息C,因为它只有活动状态。