When working with reports in Salesforce, you will find that report types have a major effect on what you are able to manipulate. Report types control what report results have the potential to show, what objects you have access to, what fields are available, and how certain report features will behave. This is the first filter being applied to the data.
The report engine in Salesforce relies on the relationships that are explicitly defined in order to join together data from multiple objects. This means your data architecture determines what native Salesforce reports will be capable of producing. Here are four concepts to consider for data modelling that will allow you to build the reports you desire.