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

Ayuda con operación SUM

Estas en el tema de Ayuda con operación SUM en el foro de SQL Server en Foros del Web. Hola, en un campo tengo un campo que totaliza con la siguiente expresión: =SUM(Fields!Remaining_Amount.Value) Y me totaliza el campo "Remaining_Amount" perfectamente. Pero ahora sólo quiero ...
  #1 (permalink)  
Antiguo 03/02/2011, 04:25
 
Fecha de Ingreso: febrero-2007
Mensajes: 53
Antigüedad: 17 años, 2 meses
Puntos: 0
Ayuda con operación SUM

Hola, en un campo tengo un campo que totaliza con la siguiente expresión:
=SUM(Fields!Remaining_Amount.Value)
Y me totaliza el campo "Remaining_Amount" perfectamente. Pero ahora sólo quiero que me totalice si en un campo llamado "Dias" que tengo estos són =>105. ¿Cómo sería la expresión, por favor?
Muchas gracias.
  #2 (permalink)  
Antiguo 03/02/2011, 07:28
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Ayuda con operación SUM

Puedes usar CASE WHEN.
Código SQL:
Ver original
  1. SUM(CASE WHEN Dias >= 105 THEN 1 ELSE 0 END)
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #3 (permalink)  
Antiguo 03/02/2011, 08:29
 
Fecha de Ingreso: febrero-2007
Mensajes: 53
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Ayuda con operación SUM

Muchas gracias, peor una cosa. Este campo ya tiene el código que te he comentado, ¿no falta indicar el campo "Remaining_Amount"? en el código que me has pasado?.
Muchas gracias.
  #4 (permalink)  
Antiguo 03/02/2011, 10:18
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Ayuda con operación SUM

con permiso del compañero flaviovich, la consulta que pone el te sumaría cuantos registros tienes con el campo dias >= 105, si lo que quieres es realizar la suma del campo Remaining_Amount para los registros que cumplan la condición cambia el 1 por el campo, de tal manera que quedaría así:

Código SQL:
Ver original
  1. DECLARE @Tabla TABLE (Dias INT, Remaining_Amount INT)
  2. INSERT INTO @Tabla VALUES (103 ,10)
  3. INSERT INTO @Tabla VALUES (104, 20)
  4. INSERT INTO @Tabla VALUES (105, 30)
  5. INSERT INTO @Tabla VALUES (106, 60)
  6.  
  7. SELECT SUM(CASE WHEN Dias >= 105 THEN Remaining_Amount ELSE 0 END) AS suma
  8. FROM @tabla

Por lo tanto el resultado sería
Código:
suma
--------
90
Saludos
Leo.
  #5 (permalink)  
Antiguo 04/02/2011, 07:41
 
Fecha de Ingreso: febrero-2007
Mensajes: 53
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Ayuda con operación SUM

Muchas gracias por el interés. Creo que algo me dejo; pongo:
=SUM(case when(Dias<=105) then (Remaining_Amount.Value) else 0 end))

Y me da el error: "La expresiónn Value del objeto textbox30 de tipo textbox contiene un error: [BC30201] Se esperaba una expresin.
Build completa -- 2 errores, 0 advertencias"

¿Sabeis que puede ser?.
Muchas gracias.
  #6 (permalink)  
Antiguo 04/02/2011, 07:45
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Ayuda con operación SUM

Tu estas mezclando T-SQL con algun lenguaje de programcion.
Dinos donde estas ejecutando tu consulta, en el Query Analyzer, o es un algun aplicativo?
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #7 (permalink)  
Antiguo 07/02/2011, 02:35
 
Fecha de Ingreso: febrero-2007
Mensajes: 53
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Ayuda con operación SUM

Gracias; sí, perdón quizás tenia que haberlo dicho. Lo estoy haciendo en Visual Studio 2005.
Muchas gracias.
  #8 (permalink)  
Antiguo 07/02/2011, 07:41
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Ayuda con operación SUM

Entonces copianos solo tu codigo SQL completo.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #9 (permalink)  
Antiguo 08/02/2011, 04:28
 
Fecha de Ingreso: febrero-2007
Mensajes: 53
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Ayuda con operación SUM

Gracias. Tengo lo siguiente:

SELECT No_, Name, [Phone No_], [Posting Date], [Due Date], [Document No_], Description, [Open], [Remaining Amount (LCY) stats_], [E-Mail]
FROM [Cliente y mov cliente]
WHERE ([Open] = 1) AND ([Remaining Amount (LCY) stats_] <> 0)

Luego, en el mismo campo Remaining Amount (LCY) para que me sume tengo la función:
=SUM(Fields!Remaining_Amount__LCY__stats_.Value)

Nosé si con esto es suficiente.
Un saludo.
  #10 (permalink)  
Antiguo 08/02/2011, 07:46
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Ayuda con operación SUM

Insisto en que tu estas mezclando codigo T-SQL con algun lenguaje de programacion.
Haciendo un esfuerzo sobrehumano por entender lo que quieres hacer, diria que sumes los valores de tu objeto Fields antes de asignarlo a tu codigo SQL.
Si no es eso, mejor explicanos con ejemplos, es decir, muestranos tus datos.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #11 (permalink)  
Antiguo 08/02/2011, 10:34
 
Fecha de Ingreso: febrero-2007
Mensajes: 53
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Ayuda con operación SUM

Perdón, es que estoy empezando con el tema y no tengo mucha idea. Lo estoy haciendo todo desde Visual Studio.
Por un lado muestro en un campo llamado "Dias pasados" los dias que hay entre la "Fecha de vencimiento" (Due_Date) y el día de hoy. Para ello en el campo "Dias pasados" tengo la función:
=DateDiff("d",Fields!Due_Date.Value,Today)
Y me muestra los dias que han pasado. Esto es correcto. Luego en toda la linea le digo que sólo me muestre los registros que en "Dias pasados" sean iguales o más que 105 días. Esto lo hago así y me funciona correctamente:
=IIF(Fields!Dias_pasados.Value<=105, True, False)
El problema viene porque cada registro tienen un importe (un campo llamado Remainig Amount) y lo que he hecho es totalizar todos los importes de un mismo cliente de la siguiente manera:
=SUM(Fields!Remaining_Amount__LCY__stats_.Value)
Y tambien lo hace bien, pero los suma todos, y yo sólo quiero que sume los totales de los registros que en el campo "Dias pasados" aparezcan 105 días o más.
El tema (creo) es poner en este SUM que sólo sume los importes en el caso que he especificado, pero he hecho cantidad de convinaciones y nada.
Nosé si me he explicado bien; sinó es así disculpad.
Muchas gracias por el interés.
  #12 (permalink)  
Antiguo 08/02/2011, 11:00
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Ayuda con operación SUM

Hola de nuevo LeroyBrown:

Ya el compañero Flaviovich te lo ha dicho hasta el cansancio pero pareces no comprender que NO DEBES MEZCLAR CÓDIGO T-SQL CON OTROS LENGUAJES DE PROGRAMACIÓN.

Es muy difícil poder tratar de entender el código que pones en tus post, pues no tenemos el contexto general de tu página. No sabemos qué tipo de objetos estás utilizando (textbox, grid's, etc.). Además, Visual Studio no es un lenguaje de programación, sino un IDE de desarrollo. puedes estar programando en ASP, ASP.NET, con C#, J#, Visual Basic y varios más siempre utilizando Visual Studio como IDE de desarrollo. ¿Vez la complicación?

finalmente puedes intentar hacer algo como esto:

Código:
=SUM(IIF(Fields!Dias_pasados.Value<=105, 
Fields!Remaining_Amount__LCY__stats_.Value, 0))
No tengo idea de qué tipo de datos es Remaining_Amount__LCY__stats_, si no es de tipo numérico tendrás que hacer la conversión correspondiente. No estoy seguro si pueda funcionar, pero es lo único que se me ocurre que pueda servirte.

Saludos
Leo.
  #13 (permalink)  
Antiguo 11/02/2011, 05:09
 
Fecha de Ingreso: febrero-2007
Mensajes: 53
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Ayuda con operación SUM

Gracias por la paciencia y disculpad por mi torpeza. El lenguaje para publicar informes en mi caso es RDLC (Report Definition Language Client-side).
Por otro lado Ramainig amount no es más que un campo decimal.
De todas maneras he probado el código y no me acaba de funcionar, aunque gracias a la sugerencia estoy cerca, ya que no me da un error de ejecución sinó que me indica #Error en el campo al ejecutarse; voy a intentar ver que me falta.
Muchas gracias por el interés.
  #14 (permalink)  
Antiguo 11/02/2011, 07:25
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Ayuda con operación SUM

Has hecho la consulta respectiva en el foro de programación?
Tu problema parece no ser de SQL Server.
Suerte!
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #15 (permalink)  
Antiguo 14/02/2011, 06:46
 
Fecha de Ingreso: febrero-2007
Mensajes: 53
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Ayuda con operación SUM

Muchas gracias, pero no veo el foro adecuado a este lenguaje. Bueno, igualmente muchas gracias por la ayuda y la paciencia.
Un saludo.

Etiquetas: sum
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 10:47.