我有一张桌子
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
有人可以帮忙解决这个问题。
答案 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,因为它只有活动状态。