Hola taelen... a simple vista no pareciera haber ningún problema, pero en estos momentos no tengo la posibilidad de hacer una prueba en una base de datos. prueba inicializando el valor se tu variable @CantTotal antes de entrar en el while:
Código:
set @CantTotal = 0
WHILE
.....
....
No soy muy partidario de utilizar Cursores, ya que estos pueden afectar en demasía el desempeño del servidor y por lo general siempre hay otras alternativas para obtener los mismos resultados utilizando consultas genéricas... igual y sería conveniente que nos plantearas un poco mejor el problema, incluyendo algunos datos de ejemplo y la estructura de tus tablas, así podríamos ayudarte a buscar alguna solución sin utilizar cursores.
Saludos
Leo