即时寻找填写此条件的查询:
目前为我们提供了实体的BAC数量(这是我们需要的)。数据库在每个会计实体内连续分配BAC ID。因此,我们需要在查询中再添加一个字段,以显示实体当前最高的BAC ID。一旦我们有了这个,只需将结果过滤到任何地方,记录的数量不等于最高ID。
我当前的查询:
select accounting_entity_id, count(bac_id)
from dc.pl_bac_information
group by accounting_entity_id
having count(bac_id) > 1;
答案 0 :(得分:1)
使用分析函数:
select bi.*
from (select bi.*, max(bac_id) over (partition by accounting_entity_id) as max_bac_id
from dc.pl_bac_information bi
) bi
where bac_id = max_bac_id;
这假设您使用的是Oracle。
答案 1 :(得分:0)
SELECT ACCOUNTING_ENTITY_ID
FROM DC.PL_BAC_INFORMATION
HAVING COUNT(BAC_ID) > 1 AND COUNT(BAC_ID) != MAX(BAC_ID)
GROUP BY ACCOUNTING_ENTITY_ID;