How to bring data from two tables that could/could not be present in one of them
Try changing your GROUP BY YEAR(PurchaseDate)...
to GROUP BY ALL YEAR(PurchaseDate)...


  GROUP BY ALL -> "Specifies to include all groups in the results regardless of whether
  they meet the search criteria in the WHERE clause. Groups that don't
  meet the search criteria have NULL for the aggregation."


For some reason, MS decided to deprecate the feature, but it still works.
See the GROUP BY topic in the documentation.