|Assuming that one person can have multiple payments, an
INNER JOIN will return a record for every payment over two months old, regardless of whether the person has paid within the last two months.
What you need to do is find the
person records which don't have a
payment record within the last two months. To do that, you can use a
Not Exists filter:
DECLARE @Today date = GetUtcDate();
DECLARE @CutoffDate date = DateAdd(month, -2, @Today);
WHERE payment.national_number = person.national_number
And payment.payment_date > @CutoffDate
"These people looked deep within my soul and assigned me a number based on the order in which I joined."