The Coding Error
The SELECT statement errs by placing all of the selection criteria for the query in the ON clause. The ON clause should only include selection criteria for the inner table in the outer join, that is, the criteria that define the nullable nonmatching rows for the outer join.
Selection criteria for the outer table (the customer table in this case) in the outer join must be placed in the WHERE clause.