class joins to enable reporting on data from multiple classes or tables. For each class join, define one or more logical conditions that specify how to match or join corresponding instances in different classes.
Sub-reports enable results from any report definition (including a report definition defined on a different Applies To class) to be referenced and included in a different report definition.
You can find the entire description in detail in the Pega help.
To access the same, open an Report definition > Click on Actions > Get help > Open the data access tab. \Hope that helps.
Sub-reports within Report Definition reports to simplify assembling data from several classes, or to satisfy complex conditions. Like creating sub report and placing different class joins with logical conditions with in that report.