Firing a customer because you have a bad service is not a good idea. I think the customers that talk to you instead of just leaving to a competitor are...
Your solution doesn't account for situations where "simon" and "Jane" appear on different columns of the row ("Simon" on one field and "Jane" on another), which is...