How can I move the join that is currently in the WHERE clause AND subMainTable.ID = MainTable.ID into the the FROM clause.
I cannot seem to move it there due to the way it is aliased.
This is a working query which I have renamed and removed unrelated parts to the question.
SELECT ID ,DETAILS ,ENTRYDATE ,ISNULL(LastBalance, 0) + ( SELECT SUM(VAL) FROM tempData subMainTable LEFT OUTER JOIN FinanceTable f ON subMainTable.ID = f.accId AND subMainTable.TRANS_ID = f.txnID WHERE subMainTable.TRANS_ID <= MainTable.TRANS_ID AND subMainTable.ID = MainTable.ID AND f.txnID IS NULL ) AS Balance FROM (SELECT MainTable.* FROM tempData MainTable LEFT JOIN FinanceTable FinTable ON (MainTable.ID = FinTable.accId AND MainTable.TRANS_ID = FinTable.txnID ) WHERE (FinTable.accId IS NULL AND FinTable.txnID IS NULL ) ) AS MainTable ...