这是因为外部联接年龄组是不是也是一个外连接到任何你的其他 组是 - 你只保证有每个数据集各年龄组中的一个,而不是按各年龄组的一个[其他组]。
因此,例如,如果您的其他组为Region,则需要从年龄段表到地区表的笛卡尔/交叉连接(以便您可以获得年龄范围和地区的所有可能组合)到你的数据集的其余部分。
编辑 - 基于的评论,类似下面的查询应该工作:
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
(假设它是一个需要分组到桶中的活动日期。)
只包括分组方案在瑞奇集团的单行是不寻常的。我想知道为什么你需要它 - 也许会有线索。另外,看看有没有新组的Crystal生成的SQL - 查看是否有任何差异可以解释缺失的行。 – Ray 2010-10-22 21:49:53