Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

[Duda] Sobre Between

-- ejercicio        * por proximidad *
SELECT * FROM tb_vendedores WHERE PORCENTAJE_COMISION BETWEEN 0.90 AND 11; 

Imagen WorkbenchEstariamos en precencia de un Warning.

Por qué hay que tener cuidado:

Valores aproximados: Los tipos de datos FLOAT y REAL son tipos de datos numéricos aproximados, lo que significa que no almacenan los valores exactos especificados para muchos números, sino una aproximación cercana. Comparaciones directas: Debido a esta aproximación, comparar directamente valores FLOAT con los operadores = o <> puede llevar a resultados inesperados. Dos números de punto flotante son iguales solo si las configuraciones de bits de sus formas normalizadas son idénticas. Alternativas y recomendaciones: BETWEEN: El operador BETWEEN es útil para rangos, pero internamente también realiza comparaciones, por lo que la misma precaución aplica. Márgenes de tolerancia: Una técnica común es comparar si la diferencia absoluta entre dos valores FLOAT es menor que un cierto margen de tolerancia.

1 respuesta

Hola Christian,

Entiendo que estás teniendo problemas con la consulta que estás realizando para seleccionar vendedores por el valor de la comisión. El warning que estás experimentando puede estar relacionado con el uso de valores FLOAT y la comparación directa de los mismos.

Dado que estás buscando vendedores con una comisión superior al 10%, en lugar de usar el operador BETWEEN con valores FLOAT, podrías considerar usar el operador de comparación > (mayor que) para evitar problemas con la precisión de los valores FLOAT. Aquí tienes un ejemplo de cómo podrías ajustar tu consulta:

SELECT * FROM tb_vendedores WHERE PORCENTAJE_COMISION > 10;

Al hacer esto, estarás seleccionando aquellos vendedores cuya comisión sea superior al 10% sin preocuparte por las comparaciones directas con valores FLOAT.

Espero que esto te ayude a resolver tu problema. ¡Buena suerte con tu actividad!

Espero haber ayudado y buenos estudios!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!