Several things I noticed:
You may wish to rewrite this and try it outside of Crystal to get the query itself working properly.
Something more like this would be much more readable, at least:
SELECT "SAH05"."ZMCOMP", "SAH05"."BTLTYP", "SAH05"."DMITCL","SAH05"."BTITNO",
"SAH05"."BTSLDQ", "SAH05"."BTCONV", "SAH05"."BTSLDA", "SAH05"."BTSLDD",
"SAH05"."JSYEAR", "SAH05"."JSPERD",
"ARM01"."GMCTYP",
"INM01"."DMITDS"
FROM ("S65445BB"."ECLFLIB"."SAH05" "SAH05" INNER JOIN
"S65445BB"."ECLFLIB"."ARM01" "ARM01"
ON ("SAH05"."GMCUST"="ARM01"."GMCUST"
AND ("SAH05"."ZMCOMP"="ARM01"."ZMCOMP"

)
INNER JOIN "S65445BB"."ECLFLIB"."INM01" "INM01"
ON "SAH05"."BTITNO"="INM01"."DMITNO"
WHERE
("SAH05"."JSPERD" between 1 AND 12)
AND "SAH05"."JSYEAR"=2003
AND ("SAH05"."DMITCL" in ('F2', 'G3','HD1', 'M1','M2','M3','M6','M7','M8')
AND "SAH05"."BTLTYP"='R' AND "SAH05"."ZMCOMP"='50'
(outside of crystal you'll have to loose all the double quotes).
Also, for some dbs, the order of the where clause conditions could have impact on speed. For example, you might try putting the most inclusive condition at the bottom of your list of conditions.
Eg, if "SAH05"."ZMCOMP"='50' will get a 'yes' on only a few records, put this first. If AND "SAH05"."JSYEAR"=2003 will return many thousands of records, put this last. If your not sure, mix it up a few different ways.
Finally, the biggest factor for poor speed is usually the joins. Yours don't look too complicated, but I'm not too familiar with that inner join - on syntax. Can you get with a dba to help you check the joins?