This Query works in a loop and thus its performance is too slow.
FUID is provided by a while loop.
SELECT (SELECT TOP 1 AmountPaid 
        from [xyz].[dbo].AmountReceived 
          WHERE C.IID = [xyz].[dbo].AmountReceived.IID 
        order by ReceivingDate asc)
FROM [xyz].[dbo].Customer C
  Where C.BuisnessDate >= DATEADD(m,DATEDIFF(m,0,'2015-03-31'),0) 
  AND C.BuisnessDate <= DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,'2015-03-31')+1,0)) AND C.FUID=16 
  AND DATEDIFF(M,C.RiskDate,'2015-03-31') <=3
Customer table contains these related columns:
 +------------+----+----------+----------+
 |   IID  | FUID |BusinessDate|RiskDate  |
 +--------+------+------------+----------+
 | 22433  | 13   |2013-05-02  |2007-05-23|
 | 22443  | 26   |2014-02-18  |2011-09-07|
 | 22906  | 32   |2014-12-22  |2015-01-12|
AmountReceived table:
 +--------+---------------+-------------+
 |   IID  |AmountPaid     |ReceivingDate|
 +--------+---------------+-------------+
 | 22433  | 13800         |2015-02-02   |
 | 22443  | 1290          |2014-12-18   |
 | 22906  | 408           |2014-10-22   |
 
    