¿Puede que tengas registros en tabla2 y tabla3 con ID2 e ID3 informado pero no coincida con ninguno en tabla1? Supongo que no y que serán FK de tabla1, pero es lo que se me ocurre. En cualquier caso, para comprobar que existe en tabla2 o tabla3 yo usaria una consulta un poco diferente a la tuya
Código SQL:
Ver originalSELECT COUNT(*)
FROM tabla_1 a
LEFT OUTER JOIN tabla_2 b ON (a.ID = b.ID2)
LEFT OUTER JOIN tabla_3 c ON (a.ID = c.ID3)
WHERE (b.ID2 IS NOT NULL OR c.ID3 IS NOT NULL)
AND fecha > trunc(sysdate - 30)
ORDER BY a.ID DESC