Это, очевидно, лишь часть вашего кода, но сейчас я вижу, что у вас отсутствует правильная скобка между строками 3 и 4:
AND NOT EXISTS (SELECT 1 FROM gift g
WHERE g.gift_donor_id = xc5.id_number
AND g.gift_associated_amount + g.gift_associated_credit_amt > 0
) -- <== This one was missing.
JOIN primary_gift pg ON pg.prim_gift_receipt_number = g.gift_receipt_number
AND pg.prim_gift_source_of_info = 'AW')
Это или вам нужно изменить это так:
AND NOT EXISTS (
SELECT 1 FROM gift g
JOIN primary_gift pg
ON pg.prim_gift_receipt_number = g.gift_receipt_number
AND pg.prim_gift_source_of_info = 'AW'
WHERE g.gift_donor_id = xc5.id_number
AND g.gift_associated_amount + g.gift_associated_credit_amt > 0)
Так что объединение идет перед предложением where.