Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Suma de acumulado con valor varchar

Estas en el tema de Suma de acumulado con valor varchar en el foro de SQL Server en Foros del Web. Hola a todos: Pido su ayuda para resolver este problema, tengo un codigo el cual me despliega la informacion de un periodo te tiempo definido ...
  #1 (permalink)  
Antiguo 11/04/2012, 08:24
Avatar de ARHUZ  
Fecha de Ingreso: abril-2012
Ubicación: México D.F.
Mensajes: 17
Antigüedad: 12 años
Puntos: 0
Exclamación Suma de acumulado con valor varchar

Hola a todos:

Pido su ayuda para resolver este problema, tengo un codigo el cual me despliega la informacion de un periodo te tiempo definido en el cual tengo al final una columna de acumulado por día del cliente, este codigo despliega la informacion por dia y el acumulado de cada uno, pero necesito hacer una suma de este acumulado para saber cuantos clientes son en ese tiempo en general, el prioblema es que la funcion SUM no funciona ya que los valores de la tabla estan en varchar todos, alguien podria ayudarme a encontrar una solucion??


--Completo

select DISTINCT A.LIQ_FECHA, A.ID_LOCALILDAD, A.ID_ALMACEN, A.ID_RUTA,A.ID_SKU,D.ID_SP, B.ID_TAMANO, B.ID_SABOR, E.ID_MARCA, COUNT(DISTINCT A.ID_CLIENTE)
from FADMVEN00 A
LEFT OUTER JOIN LU_PRODUCTO_SKU B ON A.ID_SKU = B.ID_SKU
LEFT OUTER JOIN LU_CLIENTE D ON A.ID_CLIENTE = D.ID_CLIENTE
LEFT OUTER JOIN LU_PRODUCTO_SUBMARCA E ON B.ID_SUBMARCA = E.ID_SUBMARCA
WHERE LIQ_FECHA >= '20120401'
GROUP BY A.LIQ_FECHA, A.ID_LOCALILDAD, A.ID_ALMACEN, A.ID_RUTA,A.ID_SKU,D.ID_SP, B.ID_TAMANO, B.ID_SABOR, E.ID_MARCA

--Tamaño
select DISTINCT A.LIQ_FECHA, A.ID_LOCALILDAD, A.ID_ALMACEN, A.ID_RUTA,A.ID_SKU,D.ID_SP, B.ID_TAMANO, COUNT(DISTINCT A.ID_CLIENTE)
from FADMVEN00 A
LEFT OUTER JOIN LU_PRODUCTO_SKU B ON A.ID_SKU = B.ID_SKU
LEFT OUTER JOIN LU_CLIENTE D ON A.ID_CLIENTE = D.ID_CLIENTE
LEFT OUTER JOIN LU_PRODUCTO_SUBMARCA E ON B.ID_SUBMARCA = E.ID_SUBMARCA
WHERE LIQ_FECHA >= '20120401'
GROUP BY A.LIQ_FECHA, A.ID_LOCALILDAD, A.ID_ALMACEN, A.ID_RUTA,A.ID_SKU,D.ID_SP, B.ID_TAMANO

--SABOR

select DISTINCT A.LIQ_FECHA, A.ID_LOCALILDAD, A.ID_ALMACEN, A.ID_RUTA,A.ID_SKU,D.ID_SP, B.ID_SABOR, COUNT(DISTINCT A.ID_CLIENTE)
from FADMVEN00 A
LEFT OUTER JOIN LU_PRODUCTO_SKU B ON A.ID_SKU = B.ID_SKU
LEFT OUTER JOIN LU_CLIENTE D ON A.ID_CLIENTE = D.ID_CLIENTE
LEFT OUTER JOIN LU_PRODUCTO_SUBMARCA E ON B.ID_SUBMARCA = E.ID_SUBMARCA
WHERE LIQ_FECHA >= '20120401'
GROUP BY A.LIQ_FECHA, A.ID_LOCALILDAD, A.ID_ALMACEN, A.ID_RUTA,A.ID_SKU,D.ID_SP, B.ID_SABOR

--MARCA

select DISTINCT A.LIQ_FECHA, A.ID_LOCALILDAD, A.ID_ALMACEN, A.ID_RUTA,A.ID_SKU,D.ID_SP, E.ID_MARCA, COUNT(DISTINCT A.ID_CLIENTE)
from FADMVEN00 A
LEFT OUTER JOIN LU_PRODUCTO_SKU B ON A.ID_SKU = B.ID_SKU
LEFT OUTER JOIN LU_CLIENTE D ON A.ID_CLIENTE = D.ID_CLIENTE
LEFT OUTER JOIN LU_PRODUCTO_SUBMARCA E ON B.ID_SUBMARCA = E.ID_SUBMARCA
WHERE LIQ_FECHA BETWEEN '20120301' AND '20120317'
GROUP BY A.LIQ_FECHA, A.ID_LOCALILDAD, A.ID_ALMACEN, A.ID_RUTA,A.ID_SKU,D.ID_SP, E.ID_MARCA


Gracias todos de antemano!!
  #2 (permalink)  
Antiguo 11/04/2012, 09:33
Avatar de ramirezmario7  
Fecha de Ingreso: febrero-2008
Ubicación: Medellín
Mensajes: 336
Antigüedad: 16 años, 2 meses
Puntos: 56
Respuesta: Suma de acumulado con valor varchar

Hola.
No has intentado hacer un cast a la columna que debes de sumar, eso si tienes que verificar que no hayan datos en blanco y que si sean numericos, para lo de los datos en blanco puedes hacer esto isnull(columna,0) pero para lo de los caracteres que no sean numerico si ya se debe de tener cuidado a la hora de ingresar los datos, me imagino que eso si esta controlado.
__________________
Mario Ramírez
Desarrollador .NET MCTS
https://www.mcpvirtualbusinesscard.c...nteractivecard
  #3 (permalink)  
Antiguo 11/04/2012, 11:11
Avatar de ARHUZ  
Fecha de Ingreso: abril-2012
Ubicación: México D.F.
Mensajes: 17
Antigüedad: 12 años
Puntos: 0
Respuesta: Suma de acumulado con valor varchar

Cita:
Iniciado por ramirezmario7 Ver Mensaje
Hola.
No has intentado hacer un cast a la columna que debes de sumar, eso si tienes que verificar que no hayan datos en blanco y que si sean numericos, para lo de los datos en blanco puedes hacer esto isnull(columna,0) pero para lo de los caracteres que no sean numerico si ya se debe de tener cuidado a la hora de ingresar los datos, me imagino que eso si esta controlado.
Muchas gracias

Tienes mucha razón eh intentado hacer el cast pero sin exito aun para la columna que los sumara, y si no hay valores en blanco y todos son numericos
  #4 (permalink)  
Antiguo 11/04/2012, 14:03
 
Fecha de Ingreso: mayo-2008
Mensajes: 51
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: Suma de acumulado con valor varchar

Si tinenes datos "null" en ese campo no te podra hacer la suma. Sin embrago intenta con esto

convert(numeric(9,2),(campo))"alias_campo"

si es que tienes datos en blanco o nulos en esa columna, yo pondria un "case" para poner el valor de "0" cuando x registro no tenga una cantidad.

La otra es exporta a excel tu campo, con un id razonable, actualizar la informacion y luego updetear tu tabla en ese campo, con los datos de excel, (siempre y cuando tu tabla no sea de millones de registros)
  #5 (permalink)  
Antiguo 11/04/2012, 14:28
Avatar de ARHUZ  
Fecha de Ingreso: abril-2012
Ubicación: México D.F.
Mensajes: 17
Antigüedad: 12 años
Puntos: 0
Respuesta: Suma de acumulado con valor varchar

Muchas gracias por sus ideas, y si estoy tratando con las opciones que me mencionan se los agradesco mucho!!!

Saludos!

Etiquetas: fecha, select, suma, tabla, varchar, acumular
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:48.