I need help in understanding why is the loop below not working. It only inserts the first record it then stops.
DECLARE
@NEW_BALANCE FLOAT
, @CUR_NEW_BALANCE FLOAT
, @OLD_BALANCE FLOAT
, @CUR_OLD_BALANCE FLOAT
, @INITIAL_BALANCE FLOAT
, @RATE FLOAT
, @MONTHLY_RATE FLOAT
, @MONTHLY_INTEREST FLOAT
, @PAYMENT FLOAT
SELECT @RATE = INTEREST
FROM ACCOUNTS WHERE ACCOUNT = 'AMEXDELTA'
SET @MONTHLY_RATE = (@RATE / 12) / 100
SELECT TOP 1 @CUR_NEW_BALANCE = NEW_BALANCE
, @CUR_OLD_BALANCE = OLD_BALANCE
FROM PAYMENTS ORDER BY ID DESC
SELECT @CUR_NEW_BALANCE AS NEW_BALANCE
, @CUR_OLD_BALANCE AS OLD_BALANCE
WHILE @NEW_BALANCE > 0
BEGIN
SET @MONTHLY_INTEREST = (@CUR_OLD_BALANCE * @MONTHLY_RATE)
SET @OLD_BALANCE = (@CUR_NEW_BALANCE - @PAYMENT)
SET @NEW_BALANCE = (@MONTHLY_INTEREST + @OLD_BALANCE)
INSERT INTO PAYMENTS(PAYMENT, MONTHLY_INTEREST, OLD_BALANCE, NEW_BALANCE)
SELECT @PAYMENT, @MONTHLY_INTEREST, @OLD_BALANCE, @NEW_BALANCE
END
Below is the current data in the table PAYMENTS:
Old_Balance | New_Balance
------------|------------
2845.8 | 2845.8
Below is the current date in table ACCOUNTS
Interest
--------
15.24