这是因为与年龄组的外部连接也不是与其他组的外部连接 - 您只能保证每个数据集的每个年龄组都有一个,而不是每个 [其他组] 的每个年龄组都有一个。
因此,例如,如果您的另一个组是区域,您需要从您的年龄范围表到区域表的笛卡尔/交叉连接(以便您获得年龄范围和区域的所有可能组合),然后再外部连接到其余组你的数据集。
编辑 - 根据评论,如下查询应该有效:
select date_helper.date_description, c.case_number, e.event_number
from
(select 0 range_start, 11 range_end, '0-10 days' date_description from dual union
select 11, 21, '11-20 days' from dual union
select 21, 31, '21-30 days' from dual union
select 31, 99999, '31+ days' from dual) date_helper
cross join case_table c
left outer join event_table e
on e.event_date <= date_helper.range_start*-1 + sysdate
and e.event_date > date_helper.range_end*-1 + sysdate
and c.case_number = e.case_number
(假设需要将 event_date 分组到桶中。)