Lo siento, me expliqué mal. Los valores de mi consulta son correctos.

Lo que quiero es que si los valores que introduzco son más pequeños que los que hayan en la tabla, entonces retornará la fila con cm_min y cm_max menores.

Te pongo unos ejemplos:
Para estos valores:
SET @v1=8, @v2=9;Debería de devolver el mayor rango de la tabla, en este caso el que tiene el id 7 (12, 14)
Y para estos otros valores:
SET @v1=99, @v2=109;Debería de devolver el mayor rango de la tabla, en este caso el que tiene el id 5 (83, 86)
¿Me explico?

¡Muchas gracias!
DoEvents!

EDIT:Igual no me queda otra que hacerlo con varias consultas. Porque quiero que para estos valores:
SET @v1=80, @v2=99;Ningún registro de la tabla comprende el número 80. En este caso mi código me devuelve el id 5, pero si el número de comienzo está desierto, quiero que me saque el segundo más grande en la misma consulta también, ¿me explico?
Hay que ver como me cuesta expresarme siendo una cosa tan sencilla.

DoEvents!
