Report type with or without records
Key Takeaway
When users need to see parent records that have no child records, choose the "may or may not" option. The "must have at least one" option leaves those parent records out.
A custom report type controls which objects and records a report can include. You choose between two options when you relate a child object to the primary object. Your choice decides whether parent records that have no child records show up in report results.
Primary object and related objects
To create or update custom report types, you need the Manage Custom Report Types permission. Every custom report type starts with a primary object. You can't change the primary object after you save the report type.
You can include fields from more than the primary object by adding related objects with "Click to relate another object". When you relate an object, you also pick the relationship criteria to control which records from the child object are included.