[ Foro de SQL (y MySQL) ]

Ejecutar un string como calculo

18-Nov-2015 00:54
Invitado (Jorge)
4 Respuestas

Estimados

Tengo una base MySql donde uno de los registros tiene guardada en forma de string una formula matematica para calcular una lista de precios, el punto que estoy elaborando un reporte y necesito usar esa formula para realizar un calculo para el reporte.
Seria que dada una tabla como
PrecioBase         Formula
100                         (x+2)*0.5

Yo ya he intentado con CAST, pero no me toma la cuenta, solo el primer digito

CAST((Replace(formula,'x',PrecioBase)) as unsigned) as monto,

Me podrian ayudar
Mil gracias
Jorge


18-Nov-2015 09:55
Nacho Cabanes (+84)

Cierto, CAST sirve para convertir un dato concreto de un tipo de datos a otro, pero no evalúa una expresión compleja, sino que interrumpirá la conversión en cuanto un dato no se pueda convertir al formato de destino (generalmente, no en el primer dígito, pero sí tras el primer número). Por ejemplo,

SELECT CAST("23+3" AS UNSIGNED) -> 23

Hasta donde yo sé, MySQL no incluye ninguna instrucción EVAL, VAL o similar que permita hacer de forma sencilla lo que pretendes.



18-Nov-2015 12:49
Invitado (Jorge)

Muchas gracias Nacho

Lo puedo resolver con un script?
Para armar el .rpx solo tengo el sql mas el script, existe la posiblidad de pasarle la formula al script y ejecutarla desde alli?  Sino estoy al horno.

Saludos y gracias nuevamente.


18-Nov-2015 18:04
Invitado (Jorge)

Muchas gracias Nacho

(No se porque no aparecen mis reconsultas en el foro.)

Dada esta limitacion y que estoy armando esta consulta para un reporte rpx, que me aconsejas para que pueda realizar el calculo, puedo hacerlo mediante un script?

Mil gracias de antemano


18-Nov-2015 22:52
Nacho Cabanes (+84)

Las consultas anónimas no aparecen hasta que un moderador (yo, en principio) las dé como válidas, para filtrar un poco el spam. Eso puede llevar horas, según si yo estoy en el trabajo o si tu franja horaria es distinta de la mía y estoy incluso durmiendo. Si quieres que se vean publicadas automáticamente, la alternativa es registrarte. Si no es urgente, sabes que normalmente una consulta anónima estará aceptada y (posiblemente) respondida en un máximo de 24 horas.

No sé que es un rpx. ¿Es el formato interno de declaración de un report en Active Reports o alguna herramienta parecida?

Lo habitual es que un lenguaje de definición de reports no permita evaluar expresiones, tendrías que hacerlo "desde un lenguaje de programación de verdad", y aun así no es trivial, salvo en pocos lenguajes que permiten evaluar expresiones de forma transparente.  






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)