Using an External (custom) Table in a Custom Report
Check out an example here - this is a report that joins tables the extension creates/maintains with other civicrm core tables to produce this report:

https://github.com/jake-mw/CDNTaxReceipts/blob/master/CRM/Cdntaxreceipts/Form/Report/ReceiptsIssued.php