SQL - sentencias SUM + CAST

   
Vista:
Imágen de perfil de Antonio

sentencias SUM + CAST

Publicado por Antonio (9 intervenciones) el 02/06/2015 19:49:11
buenos días tengo esta sentencia

select sum (CAST(Cantidad AS int (25))) from WTQ1
where Codigo = 'XXX_BLACK'

no sé si está bien formulada ya que me marca demasiados errores
lo que requiero es sumar las cantidades, pero el campo ‘Cantidad ‘es vachar entonces también requiero convertirlo en int
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

sentencias SUM + CAST

Publicado por leonardo_josue (877 intervenciones) el 02/06/2015 20:34:53
Hola Antonio:

1
no sé si está bien formulada ya que me marca demasiados errores

Te comento que en este foro, lamentablemente no somos adivinos, por lo tanto, si no nos dices qué errores te está marcando, entonces es imposible tratar de ayudarte.

Tampoco comentas con qué motor de BD's estás trabajando. Esto es muy importante, pues aunque los motores se basan en SQL estándar, hay diferencias importantes entre cada uno de ellos.

Ahora bien, errores puedes tener muchos... errores de sintaxis por ejemplo, para tu motor de BD's, ¿qué significado tiene el que le pongas (25) después de un tipo de dato entero?... por lo general, los enteros NO DEBEN TENER NINGÚN PARÁMETRO... ojo, no confundir con la LONGITUD del entero... si tu Manejador de BD's te permite poner algo como esto (INT (25)), esto no implicaría que el campo puede almacenar numeros de hasta 25 cifras. Debes analizar muy bien los rangos que puede almacenar cada uno de los distintos tipos de datos.

Dos, ¿estás seguro que todos los valores que tienes en ese campo son numéricos y enteros? Es un terrible horror (no error) de diseño el tener un campo varchar cuando vas a almacenar sólo números... esto por nada del mundo debería de existir en ninguna de tus tablas, si uno solo de tus registros almacena algún caracter no numérico, entonces la condición marcará error.

Postea el o los mensajes de error que está arrojando la consulta, dinos con qué motor de BD's estás trabajando y con qué versión o edición.

Saludos
Leo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antonio

sentencias SUM + CAST

Publicado por Antonio (9 intervenciones) el 02/06/2015 21:05:28
perdon es que se me perdio la pregunta, tambien me puede arojar NULL por eso es vachar

buenos días tengo esta sentencia

select sum (CAST(Cantidad AS int )) from WTQ1
where Codigo = 'XXX_BLACK'

no sé si está bien formulada ya que me marca demasiados errores
lo que requiero es sumar las cantidades, pero el campo ‘Cantidad ‘es vachar entonces también requiero convertirlo en int

me aparece este error

Msj 245, nivel 16, estado 1, línea 1
Error de conversión al convertir el valor nvarchar '550.2320' al tipo de datos int.


SELECT SUM(CONVERT(DECIMAL(16,9),(U_Solicitado*1.0))) FROM WTQ1
WHERE ItemCode = 'ATX702AR_BLACK' and U_Solicitado <> 'NULL'

y me aparece este error

Msj 8115, nivel 16, estado 8, Línea 1
Error de desbordamiento aritmético convertir nvarchar al tipo de datos numérico.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antonio

sentencias SUM + CAST

Publicado por Antonio (9 intervenciones) el 02/06/2015 22:45:08
estos son mis datos en tablas

ItemCode U_Solicitado
ATX702AR_BLACK NULL
GJ6A-68AB1 NULL
ATX702AR_BLACK NULL
GJ6A-68AB1 NULL
ATX702AR_BLACK NULL
GJ6A-68AB1 NULL
ATX702AR_BLACK 550.232
GJ6A-68AB1 10,088.44
GJ6A-68AB1 10,092.44
ATX702AR_BLACK 550.45
ATX702AR_BLACK 550.668
GJ6A-68AB1 10,096.44
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antonio

sentencias SUM + CAST

Publicado por Antonio (9 intervenciones) el 02/06/2015 23:20:04
ya me salio solo que ahora el resultado y sus decimales
el resultado que me da es 165135.00000 y el verdadero es 1651.35

SELECT SUM(CONVERT(DECIMAL(38,10),(U_Solicitado*10000.000 ))) FROM WTQ1
WHERE ItemCode = 'ATX702AR_BLACK' and U_Inventari <> 'NULL'

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias

sentencias SUM + CAST

Publicado por Isaias (690 intervenciones) el 03/06/2015 18:37:14
En otro foro, LIBRAS comento:

sera porque estas multiplicando por 10000.000??

prueba sin la multiplicacion.......

Y yo te dije que si traes datos en NULL, ocupes la función ISNULL(TuCampo, 0.0)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar