As a lowly non-accountant (just a Crystal guru & reluctant Lawson analyst), I know that, at our facility, everything is tracked by the combination of ACCT_UNIT, ACCOUNT & SUB_ACCOUNT. That aside, I think the suggestions to check/test your JOIN criteria are your best bet.
Also, from a strictly Oracle perspective, remember that the size of the tables in a JOIN relationship can have a noticeable effect on your query (both processing time & return data), based on the order you've built the JOIN. As an example, assume 3 tables: SMALL (100 rows), MED (1000 rows) & LARGE (10,000 rows) [and that's nothing compared to Lawson; we've got 750,000+ rows in the ICTRANS table alone]. If your JOIN translation* lists them in the order "...SMALL.field = MED.field(+) AND SMALL.field = LARGE.field(+)" [or the like], the fact that LARGE is listed as the outermost table in the JOIN results in the query optimizer using an inefficient HASH JOIN when it processes the query request. See if you can troll around & lay your hands on an Oracle DBA [or the moral equivalent; I'm a half-assed DBA at best] & let them take a look at your query.
*I say "translation" because the query you see if you click "Show SQL query" in Crystal is the version generated by Crystal's internal query engine; if you tried to copy & paste it into SQL+ (native Oracle), it'd crash & burn before it ever got off the ground.