You can use SUMMARY to pull together different segments of a user ID, with the MAX modifier selecting the non-blank value of the different segments. So you could create a combined TSO, OMVS and BASE report with:
n type=racf
s c=user segment=base or segment=tso or segment=omvs
sum profile(8) dfltgrp(max) uid(max) tmsize(max) count(nd)
Unfortunately, fields from CSDATA segments do not support the (MAX) statistic, so we have to use DEFINE to pull it in explicitly. Also, we only want to print this LONGNAME field when there is a matching BASE segment (with the connect group names):
n type=racf
define LONGNAME(csvalue) subselect custom_data(cskey=LONGNAME)
s c=user (segment=csdata or cggrpnm=#PCQM)
define basesegfnd count where cggrpnm=*
sum profile(8) dfltgrp(max) :uid(max) LONGNAME(max,0) basesegfnd(>0,nd)
#Support#ZSecurity#SupportMigration