Hi,
If it's few records in the table, I would create a stored procedure that updates the current Branch, then after that I would create a temp table with identity id (the rank) and insert the rows from your originally table ordered by Sales.
After that update the rank from the temp table.
I'll hope this can help you.
Regards
/Mattias
ps. another solution is to calculate the rank everytime you fetch the data, depending on your solution.