Hello Paul,
Well, yes you could. You could put the SP call in a global function and call that from the computed field. But then the PowerBuilder Code Police will hunt you down and do nasty things to you*.
The way to go is to put the ranking in the result set of the SP and use the procedure to build the datawindow. I can't see from your sample SQL that it would be too much of a stretch to do that.
You could work out a plain select statement and use that in the datawindow but off the top of my head you might have to retrieve the competitor's data too, and I guess you don't want to do that so maybe a stored procedure is the way to go.
Don't panic - you don't have to rebuild the datawindow you have (I wouldn't want to either). Create a dw using the SP and then comparing it with the existing one and with careful use of Edit Source you should be able to change the existing dw to use the SP instead of a select.
HTH, Paul
* that said, the ability to call them from a datawindow is the one and only justification for global functions existing (uh oh, I might have started a flame war here!)