It would be a great help if you posted INSERT statements that populate the tables with all of the cases you must support.

```
create table Account(
Account_Number integer
,Current_Balance money
,Final_Maturity_Date datetime
,Interest_Rate decimal(6,4)
)
create table Payment(
Account_Number integer
,Payment_Amount money
,Payment_Frequency integer
,Payment_date datetime
)
insert Account values (1001, 123456, '1/1/2020', 5.125)
insert Account values (1002, 987654, '1/1/2030', 6.5)
insert Account values (1003, 121212, '1/1/2015', 5.75)
-- Account 1001 made an extra payment
insert Payment values(1001, 123, 0, '1/1/2009')
insert Payment values(1001, 123, 0, '2/1/2009')
insert Payment values(1001, 123, 0, '2/15/2009')
insert Payment values(1001, 123, 0, '3/1/2009')
-- Account 1002 skipped a payment
insert Payment values(1002, 987, 0, '1/1/2009')
insert Payment values(1002, 987, 0, '3/1/2009')
-- Account 1003 has not yet made a payment
select
a.Account_Number
, a.Current_Balance
, Periodic_Interest =
Current_Balance * ((Interest_Rate/100)/12)
, New_Balance =
Current_Balance + (Current_Balance * ((Interest_Rate/100)/12))
, Payment_Amount = isnull(p.Payment_Amount,0)
from Account as a
left outer join Payment as p on p.Account_Number = a.Account_Number
```