我希望仅选择包含情况的大多数ID的记录=' A'。
如果记录中包含更多ID且情况=' C'不能退货;
怎么做?
select * from tabela a where
a.id not in (select max(b.id) from tabela b where b.fk=a.fk and b.situacao='A')
答案 0 :(得分:0)
也许是这样的。内部查询只获取C
的所有ma4idoco,并且首先排除所有ma4idoco。如果我正确理解了这个问题,可能会有多行具有相同的ma4idoco和ma4idsit ='A',但你想要最大的ma4idode。
SELECT MAX(a.ma4idode),
a.ma4idoco,
a.ma4idsit
FROM tablea a
WHERE a.ma4idoco NOT IN (SELECT b.ma4idoco FROM tablea b WHERE b.ma4idsit = 'C')
AND a.ma4idsit = 'A'
GROUP BY a.ma4idoco, a.ma4idsit