none
Cómo convertir el valor de cadena a entero en el generador de informes SSRS RRS feed

  • Pregunta

  • deseo convertir una cadena  en enteros  en la consulta,  dicha cadena contiene  0.0012455 pero el tipo de dato en la bd es  varchar y no me deja realizar est  SUM(B.VALOR_CAMPO) as campo;

    gracias

    lunes, 20 de enero de 2020 22:14

Respuestas

Todas las respuestas

  • ¿Dónde estás haciendo la conversión? ¿Es dentro de la consulta SQL que alimenta al informe? En ese caso puedes meter un CAST o CONVERT:

    Select ... SUM(CAST(B.VALOR_CAMPO AS DECIMAL(18,14))) as campo, ... FROM ...

    Observa que no puede ser como entero, porque la suma siempre te saldría cero. Hay que convertir a un tipo de dato que admita decimales si tus valores son del tipo '0.0012455'. En el ejemplo te he puesto Decimal(18,14) que significa "18 cifras de las cuales 14 son decimales"; por supuesto, puedes ajustarlo como sea necesario según tus datos.

    martes, 21 de enero de 2020 7:22
    Moderador
  • ¿Dónde estás haciendo la conversión? ¿Es dentro de la consulta SQL que alimenta al informe? En ese caso puedes meter un CAST o CONVERT:

    Select ... SUM(CAST(B.VALOR_CAMPO AS DECIMAL(18,14))) as campo, ... FROM ...

    Observa que no puede ser como entero, porque la suma siempre te saldría cero. Hay que convertir a un tipo de dato que admita decimales si tus valores son del tipo '0.0012455'. En el ejemplo te he puesto Decimal(18,14) que significa "18 cifras de las cuales 14 son decimales"; por supuesto, puedes ajustarlo como sea necesario según tus datos.

    Buenas te comento que lo he probado asi:

    SUM(CONVERT(DECIMAL(10,14),B.VALOR_CAMPO))/1E6 as Autoincrementamiento   y  asi

    SUM(CAST(B.VALOR_CAMPO AS DECIMAL(18,14)))/1E6 as Autoincrementamiento,

    Pero sin ningun resultado positivo  en los reportes y de estas maneras  no me muestra resultados  en sql oracle developer.

    y este  SUM(cast(B.VALOR_CAMPO as float))/1E6 as Autoincrementamiento, este si me trae resultado en oracle pero no en  el generador de reportes


    martes, 21 de enero de 2020 14:18
  •  no me muestra resultados  en sql oracle developer.

    Ah, no. Como estábamos hablando de SSRS yo presumí (erróneamente) que el origen de datos era SQL Server y te puse la instrucción de conversión que funciona en SQL Server. Pero si es Oracle entonces no es de extrañar que no funcione la conversión de datos que te puse, ya que el dialecto de SQL es diferente. En Oracle probablemente funcione de forma muy distinta.
    martes, 21 de enero de 2020 16:25
    Moderador
  •  no me muestra resultados  en sql oracle developer.

    Ah, no. Como estábamos hablando de SSRS yo presumí (erróneamente) que el origen de datos era SQL Server y te puse la instrucción de conversión que funciona en SQL Server. Pero si es Oracle entonces no es de extrañar que no funcione la conversión de datos que te puse, ya que el dialecto de SQL es diferente. En Oracle probablemente funcione de forma muy distinta.

    alguna idea ?

    al  usar cast(B.VALOR_CAMPO as float) o  tu_number(B.VALOR_CAMPO) en oracle lo resuelve pero en en  SSRS  

    martes, 21 de enero de 2020 18:10
  • al final lo respondi usando  un replace quitando comas y sustituyéndolas con puntos. y asi me dejo usar el to_number.
    • Marcado como respuesta Ronal Monroy viernes, 24 de enero de 2020 20:12
    viernes, 24 de enero de 2020 20:12