I can see your blog.
Not that I want to involve myself in this merry debate, but Walter's solution builds a cumulative sum only once and stops at the target record, whereas yours does exponential SUM() calculations for every record in the applicable resultset whether the target record is number 2 or number 2000. Just thought that was worth mentioning. ;-)
"... They ne'er cared for us
yet: suffer us to famish, and their store-houses
crammed with grain; make edicts for usury, to
support usurers; repeal daily any wholesome act
established against the rich, and provide more
piercing statutes daily, to chain up and restrain
the poor. If the wars eat us not up, they will; and
there's all the love they bear us."
-- Shakespeare: Coriolanus, Act 1, scene 1