 <p>No need to join, use <code>LAG</code> function to track previous.<br> If you would like to know about Lag function. Please visit below link. <a href="http://www.techonthenet.com/oracle/functions/lag.php" rel="nofollow noreferrer">http://www.techonthenet.com/oracle/functions/lag.php</a>. I have taken below as input. <img src="https://i.stack.imgur.com/3CoAy.png" alt="enter image description here"></p> <p>and executed below query using lag which automatically tracks previous row.<br> <code> SELECT * FROM( SELECT ID,LAG(BALANCE) OVER (ORDER BY DATES) AS YESTERDAY_BALANCE,BALANCE AS TODAYS_BALANCE FROM ACCOUNTS) WHERE YESTERDAY_BALANCE IS NOT NULL;</code></p> <p>Output which I got is below. If you wont get data for today still it will display the row.<br> <img src="https://i.stack.imgur.com/0rRna.png" alt="enter image description here"></p>