Вы можете использовать:
select a.ID,
a.Date_Reported,
b.Date_Received
from tx_ext a
join tx b on b.id = a.id
AND b.Date_Reported >= DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0)
AND b.Date_Reported <= EOMONTH(GETDATE());
Демо DBFiddle
Обратите внимание, что дата окончания 30/06/2018 00:00:00
, поэтому я предполагаю, что высохранить Date_Reported как DATE (не DATETIME).Если у вас есть часть времени, вам нужно изменить на:
AND b.Date_Reported < DATEADD(d,1,EOMONTH(GETDATE()))
РЕДАКТИРОВАТЬ
select a.ID,
a.Date_Reported,
b.Date_Received
from tx_ext a
join tx b on b.id = a.id
AND b.Date_Reported>=DATEADD(month,-1,DATEADD(month,DATEDIFF(month,0,GETDATE()),0))
AND b.Date_Reported<DATEADD(d,1,EOMONTH(GETDATE(),-1)) ;