So you have an n-level hierarchy with a maximum of 9 levels, correct?
Here's some thoughts on what you need to do:
1. You'll need a copy of your data for each level of the hierarchy. When you try to add a table to your report that is already in the report, Crystal will put up a warning and give you the option to "alias" the table. When a table is aliased, Crystal will put _n at the end of the name where "n" is the number of this copy. I'm not sure whether this same procedure will work with SP's, though. If it doesn't, I'm not sure that there's a way to use subreports for this because you can't put a subreport inside another subreport.
2. Left outer join from each parent to its child.
3. Group by the Organization ID in EACH of the tables.
4. In the Section Expert, turn on "Suppress If Blank" for each of your group sections. If you have static text (that always appears regardless of whether there's data) in the section, you'll need to use a Suppress formula instead. The formula would look something like this:
IsNull({MyTable_3.OrganisationID})
You would use whichever table alias is appropriate for the section.
5. Put your data in group header sections - suppress the details.
-Dell