A query que monta a grid está ok mas é ‘Bruta’, espero que entendam.
SELECT /*+FIRST_ROWS*/ ST, ID_CIDADAO, NOME, DATA_NASCIMENTO, SITUACAO, FUNCIONARIO, STATUS from (SELECT '' ST, FK_ID_CLIENTE, ID_CIDADAO, NOME, DATA_NASCIMENTO, SITUACAO, STATUS, FUNCIONARIO, CIDADAO_DESCONHECIDO FROM (SELECT CC.FK_ID_CLIENTE, C.ID_CIDADAO, C.NOME, C.DATA_NASCIMENTO, CASE WHEN ( SELECT 1 FROM TB_CAD_REGISTRO_OBITO RO WHERE RO.FK_CIDADAO = C.ID_CIDADAO AND RO.DATA_CANCELOU_REG IS NULL AND ROWNUM = 1 ) IS NOT NULL THEN 'ÓBITO' /* --(CIDADAO / CIDADAO DESCONHECIDO) */ WHEN CC.FK_ID_CLIENTE IS NULL THEN '' /*'CIDADAO SEM VINCULO'*/ WHEN CC.statuscid_ativ_inat = 1 THEN 'ATIVO' /* (CIDADAO / CIDADAO DESCONHECIDO) */ WHEN CC.statuscid_ativ_inat = 0 THEN 'INATIVO' /* (CIDADAO / CIDADAO DESCONHECIDO) */ END STATUS, CASE WHEN CC.FK_ID_CLIENTE IS NULL THEN 'CIDADÃO SEM VÍNCULO' WHEN C.CIDADAO_DESCONHECIDO = 1 THEN 'CIDADÃO DESCONHECIDO' /* SEMPRE CADASTRADO NO CLIENTE ATUAL */ ELSE 'CIDADÃO' /* CADASTRADO OU VINCULADO DE OUTRO CLIENTE */ END SITUACAO, ( CASE WHEN ( SELECT 1 FROM TB_CAD_FUNCIONARIO F JOIN TB_CAD_UNIDADE U ON U.ID_UNIDADE = F.FK_ID_UNIDADE WHERE F.FK_ID_CIDADAO = C.ID_CIDADAO AND U.FK_ID_CLIENTE = CC.FK_ID_CLIENTE AND F.STATUS_ATIVO_INATIVO = 1 AND F.DATA_CANCELOU_REG IS NULL AND U.STATUS = 1 AND ROWNUM = 1 ) = 1 AND (SELECT 1 FROM TB_MASTER_CAD_PACIENTE P JOIN TB_CAD_UNIDADE U ON U.ID_UNIDADE = P.FK_ID_UNIDADE WHERE P.FK_ID_CIDADAO = C.ID_CIDADAO AND U.FK_ID_CLIENTE = CC.FK_ID_CLIENTE AND P.STATUS_ATIVO_INATIVO = 1 AND U.STATUS = 1 AND ROWNUM = 1 ) = 1 THEN 'FUNCIONARIO E PACIENTE' WHEN( SELECT 1 FROM TB_MASTER_CAD_PACIENTE P JOIN TB_CAD_UNIDADE U ON U.ID_UNIDADE = P.FK_ID_UNIDADE WHERE P.FK_ID_CIDADAO = C.ID_CIDADAO AND U.FK_ID_CLIENTE = CC.FK_ID_CLIENTE AND P.STATUS_ATIVO_INATIVO = 1 AND U.STATUS = 1 AND ROWNUM = 1 ) = 1 THEN 'PACIENTE' WHEN ( SELECT 1 FROM TB_CAD_FUNCIONARIO F JOIN TB_CAD_UNIDADE U ON U.ID_UNIDADE = F.FK_ID_UNIDADE WHERE F.FK_ID_CIDADAO = C.ID_CIDADAO AND U.FK_ID_CLIENTE = CC.FK_ID_CLIENTE AND F.STATUS_ATIVO_INATIVO = 1 AND F.DATA_CANCELOU_REG IS NULL AND U.STATUS = 1 AND ROWNUM = 1 ) = 1 THEN 'FUNCIONARIO' ELSE 'NONE' END ) FUNCIONARIO, C.CIDADAO_DESCONHECIDO FROM TB_CAD_CIDADAO C LEFT JOIN TB_MASTER_CID_CLI CC ON C.ID_CIDADAO = CC.FK_ID_CIDADAO AND cc.fk_id_cliente = 1 WHERE NOT (FK_ID_CLIENTE IS NULL AND CIDADAO_DESCONHECIDO = 1) AND (( 0 = 0 OR C.ID_CIDADAO = 0) AND ('CAROLINA G' IS NULL OR C.NOME LIKE '%CAROLINA G%')) AND C.DATA_EXCLUIU_REG IS NULL)X ) nm_sel_esp where DATA_NASCIMENTO like '%25/03/1985%'