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 |