Sorry, but It is still not clear to me
Let me recap:
1. You want to get a rowset of tctax100. (What for? Are you building a report?)
2. For the first row you want to get this first row.
3. For rows from number 2 to the last one you want the previous one instead (i. e. instead of 2nd you want 1st and for the last one you want the penultimate - so you have 2 identical first rows?)
4. 3 stays valid unless select sum(tctax910.amnt) for the current row is not 0 - then you want the current row.
Is that 100% correct?