Если бы Вы собираетесь настоять на том, чтобы делать это с регулярным выражением, я рекомендовал бы что-то как:
( (0?1|0?3| <...> |10|11|12) / (0?1| <...> |30|31) |
0?2 / (0?1| <...> |28|29) )
/ (19|20)[0-9]{2}
Это могло бы позволять читать и понять.
У вас, вероятно, есть записи в вашей таблице [dbo]. [UPSELL_DATA] со значениями в [AMRNO ], которого нет в таблице [dbo]. [AFFILIATE_MKTG_REF], столбец [AMRNO]. Попробуйте выполнить такой запрос, чтобы найти те, у которых нет совпадающих записей:
select *
from [dbo].[UPSELL_DATA] u
left join [dbo].[AFFILIATE_MKTG_REF] m
on u.AMRNO = m.AMRNO
where m.AMRNO is null