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

Sumar 4 valores

Estas en el tema de Sumar 4 valores en el foro de SQL Server en Foros del Web. como puedo sumar solo los 4 campos que tengo en la consulta ya q el sum q esta hecho suma otros mas aparte de los ...
  #1 (permalink)  
Antiguo 14/05/2009, 10:56
Avatar de TonyChile  
Fecha de Ingreso: marzo-2009
Ubicación: Maipú, Santiago
Mensajes: 422
Antigüedad: 15 años, 2 meses
Puntos: 7
De acuerdo Sumar 4 valores (SOLUCIONADO ULTIMO POST)

como puedo sumar solo los 4 campos que tengo en la consulta ya q el sum q esta hecho suma otros mas aparte de los que se ven

trate asi pero solo me suma el BAM q es el que especifico como puedo decirle q sume los 4 valores:
Código sql:
Ver original
  1. SELECT     Usu.USUARIO, Usu.EMPRESA, a.FACTURA, a.MOVIL, ISNULL
  2.      ((SELECT     SUM(valor + sobrecargo)
  3.       FROM         trafico
  4.       WHERE     factura = a.factura AND movil = a.movil AND servicio = 'BAM'), 0) AS TOTAL, ISNULL
  5.        ((SELECT     SUM(valor + sobrecargo)
  6.        FROM         trafico
  7.        WHERE     factura = a.factura AND movil = a.movil AND SERVICIO = 'BAM'), 0) AS BAM, ISNULL
  8.        ((SELECT     SUM(valor + sobrecargo)
  9.        FROM         trafico
  10.        WHERE     factura = a.factura AND movil = a.movil AND SERVICIO = 'MMS'), 0) AS MMS, ISNULL
  11.        ((SELECT     SUM(valor + sobrecargo)
  12.        FROM         trafico
  13.        WHERE     factura = a.factura AND movil = a.movil AND SERVICIO = 'SMR'), 0) AS SMR, ISNULL
  14.        ((SELECT     SUM(valor + sobrecargo)
  15.         FROM         trafico
  16.         WHERE     factura = a.factura AND movil = a.movil AND SERVICIO = 'TLL'), 0) AS TLL
  17. FROM         TRAFICO a INNER JOIN
  18.                       [ID-USUARIO] Usu ON Usu.MOVIL = a.MOVIL INNER JOIN
  19.                       [ID-FACTURA] fac ON fac.FACTURA = a.FACTURA
  20. WHERE     (a.FACTURA = '16326769')
  21. GROUP BY a.FACTURA, Usu.EMPRESA, Usu.USUARIO, a.MOVIL
  22. ORDER BY a.FACTURA, Usu.EMPRESA, Usu.USUARIO, a.MOVIL

GRACIAS
__________________
Chilenos 100% Chilenos de Corazón
"Nuestra mayor gloria no está en no caer jamás, sino en levantarnos cada vez que caigamos"

Última edición por TonyChile; 20/05/2009 a las 08:50
  #2 (permalink)  
Antiguo 14/05/2009, 10:59
Avatar de TonyChile  
Fecha de Ingreso: marzo-2009
Ubicación: Maipú, Santiago
Mensajes: 422
Antigüedad: 15 años, 2 meses
Puntos: 7
Respuesta: Sumar 4 valores

Tanto BAM, MMS,SMR,TLL estan en la misma columna
Y q ademas solo muestre los que tengan un total distinto de 0
__________________
Chilenos 100% Chilenos de Corazón
"Nuestra mayor gloria no está en no caer jamás, sino en levantarnos cada vez que caigamos"

Última edición por TonyChile; 14/05/2009 a las 12:08
  #3 (permalink)  
Antiguo 18/05/2009, 09:55
Avatar de TonyChile  
Fecha de Ingreso: marzo-2009
Ubicación: Maipú, Santiago
Mensajes: 422
Antigüedad: 15 años, 2 meses
Puntos: 7
Respuesta: Sumar 4 valores

Se podria hacer con un CASE
si alguien sabe me puede indicar como seria mas o menos

gracias
__________________
Chilenos 100% Chilenos de Corazón
"Nuestra mayor gloria no está en no caer jamás, sino en levantarnos cada vez que caigamos"
  #4 (permalink)  
Antiguo 18/05/2009, 12:36
Avatar de TonyChile  
Fecha de Ingreso: marzo-2009
Ubicación: Maipú, Santiago
Mensajes: 422
Antigüedad: 15 años, 2 meses
Puntos: 7
Respuesta: Sumar 4 valores

Alguien sabe como poder hacer esto me tiene loco

gracias
__________________
Chilenos 100% Chilenos de Corazón
"Nuestra mayor gloria no está en no caer jamás, sino en levantarnos cada vez que caigamos"
  #5 (permalink)  
Antiguo 18/05/2009, 15:38
Avatar de TonyChile  
Fecha de Ingreso: marzo-2009
Ubicación: Maipú, Santiago
Mensajes: 422
Antigüedad: 15 años, 2 meses
Puntos: 7
Respuesta: Sumar 4 valores

La verdad he tratado de buscar informacion sobre esto y como poder hacerlo pero en internet no encuentro nada similar a esto.
Ahora mi pregunta es posible realizar la suma de los elementos que necesito excluyendo los otros que se encuentran dentro de la misma columna

Si alguien sabe algo por favor comentarlo aca para ver que puedo hacer con este trabajo

Muchas gracias
__________________
Chilenos 100% Chilenos de Corazón
"Nuestra mayor gloria no está en no caer jamás, sino en levantarnos cada vez que caigamos"
  #6 (permalink)  
Antiguo 18/05/2009, 15:45
Avatar de lobo_php  
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 16 años, 6 meses
Puntos: 75
Respuesta: Sumar 4 valores

ummm, no men, no estoy al nivel de ese SQL. pero no entiendo bien. que error te saca?
__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175
  #7 (permalink)  
Antiguo 18/05/2009, 18:15
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Respuesta: Sumar 4 valores

SUM(CASE WHEN servicio = 'BAM' THEN valor + sobrecargo) AS 'BAM',
SUM(CASE WHEN servicio = 'MMS' THEN valor + sobrecargo) AS 'MMS',
SUM(CASE WHEN servicio = 'SMR' THEN valor + sobrecargo) AS 'SMR',
SUM(CASE WHEN servicio = 'TTL' THEN valor + sobrecargo) AS 'TTL',
SUM(valor + sobrecargo) AS TOTAL
  #8 (permalink)  
Antiguo 19/05/2009, 08:48
Avatar de TonyChile  
Fecha de Ingreso: marzo-2009
Ubicación: Maipú, Santiago
Mensajes: 422
Antigüedad: 15 años, 2 meses
Puntos: 7
Respuesta: Sumar 4 valores

Gracias iislas por tu aporte no estoy muy seguro de como va la sentencia sino me equivoco es asi:
Código sql:
Ver original
  1. SELECT     Usu.USUARIO, Usu.EMPRESA, a.FACTURA, a.MOVIL, ISNULL
  2.             (SELECT     SUM(valor + sobrecargo)) AS TOTAL,
  3.             (SELECT     SUM(CASE WHEN servicio = 'BAM' THEN valor + sobrecargo)) AS 'BAM',
  4.             (SELECT     SUM(CASE WHEN servicio = 'MMS' THEN valor + sobrecargo)) AS 'MMS',
  5.             (SELECT     SUM(CASE WHEN servicio = 'SMR' THEN valor + sobrecargo)) AS 'SMR',
  6.             (SELECT     SUM(CASE WHEN servicio = 'TTL' THEN valor + sobrecargo)) AS 'TTL'
  7. FROM         TRAFICO a INNER JOIN
  8.                       [ID-USUARIO] Usu ON Usu.MOVIL = a.MOVIL INNER JOIN
  9.                       [ID-FACTURA] fac ON fac.FACTURA = a.FACTURA
  10. WHERE     (a.FACTURA = '16326769')
  11. GROUP BY a.FACTURA, Usu.EMPRESA, Usu.USUARIO, a.MOVIL
  12. ORDER BY a.FACTURA, Usu.EMPRESA, Usu.USUARIO, a.MOVIL

Pero me dice que hay una sentencia incorrecta cerca de la palabra SELECT
tambien trate asi:
Código sql:
Ver original
  1. (SELECT     SUM(valor + sobrecargo) AS TOTAL,
  2.  SELECT     SUM(CASE WHEN servicio = 'BAM' THEN valor + sobrecargo) AS 'BAM',
  3.  SELECT     SUM(CASE WHEN servicio = 'MMS' THEN valor + sobrecargo) AS 'MMS',
  4.  SELECT     SUM(CASE WHEN servicio = 'SMR' THEN valor + sobrecargo) AS 'SMR',
  5.  SELECT     SUM(CASE WHEN servicio = 'TTL' THEN valor + sobrecargo)) AS 'TTL'

pero me arroja el mismo error
no se me ocurre que es
__________________
Chilenos 100% Chilenos de Corazón
"Nuestra mayor gloria no está en no caer jamás, sino en levantarnos cada vez que caigamos"
  #9 (permalink)  
Antiguo 19/05/2009, 08:53
Avatar de TonyChile  
Fecha de Ingreso: marzo-2009
Ubicación: Maipú, Santiago
Mensajes: 422
Antigüedad: 15 años, 2 meses
Puntos: 7
Respuesta: Sumar 4 valores

Ahora trate asi que creo es como debe ser pero me arroja un error sintaxis incorrecta cerca de ','

Código sql:
Ver original
  1. SELECT     Usu.USUARIO, Usu.EMPRESA, a.FACTURA, a.MOVIL, ISNULL
  2.          ((SELECT     SUM(valor + sobrecargo)) AS TOTAL,
  3.           (SELECT     SUM(CASE WHEN servicio = 'BAM' THEN valor + sobrecargo)) AS 'BAM',
  4.           (SELECT     SUM(CASE WHEN servicio = 'MMS' THEN valor + sobrecargo)) AS 'MMS',
  5.           (SELECT     SUM(CASE WHEN servicio = 'SMR' THEN valor + sobrecargo)) AS 'SMR',
  6.           (SELECT     SUM(CASE WHEN servicio = 'TTL' THEN valor + sobrecargo)) AS 'TTL'
  7. FROM         TRAFICO
  8. WHERE     factura = a.factura AND movil = a.movil)
  9. FROM         TRAFICO a INNER JOIN
  10.                       [ID-USUARIO] Usu ON Usu.MOVIL = a.MOVIL INNER JOIN
  11.                       [ID-FACTURA] fac ON fac.FACTURA = a.FACTURA
  12. WHERE     (a.FACTURA = '16326769')
  13. GROUP BY a.FACTURA, Usu.EMPRESA, Usu.USUARIO, a.MOVIL
  14. ORDER BY a.FACTURA, Usu.EMPRESA, Usu.USUARIO, a.MOVIL

__________________
Chilenos 100% Chilenos de Corazón
"Nuestra mayor gloria no está en no caer jamás, sino en levantarnos cada vez que caigamos"
  #10 (permalink)  
Antiguo 19/05/2009, 08:55
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Respuesta: Sumar 4 valores

¿Porque repites SELECT en tu instruccion?

SELECT Usu.USUARIO, Usu.EMPRESA, a.FACTURA, a.MOVIL, ISNULL
((SELECT SUM(valor + sobrecargo)) AS TOTAL,
(SELECT SUM(CASE WHEN servicio = 'BAM' THEN valor + sobrecargo)) AS 'BAM',
(SELECT SUM(CASE WHEN servicio = 'MMS' THEN valor + sobrecargo)) AS 'MMS',
(SELECT SUM(CASE WHEN servicio = 'SMR' THEN valor + sobrecargo)) AS 'SMR',
(SELECT SUM(CASE WHEN servicio = 'TTL' THEN valor + sobrecargo)) AS 'TTL
  #11 (permalink)  
Antiguo 19/05/2009, 09:00
Avatar de TonyChile  
Fecha de Ingreso: marzo-2009
Ubicación: Maipú, Santiago
Mensajes: 422
Antigüedad: 15 años, 2 meses
Puntos: 7
Respuesta: Sumar 4 valores

si me habia equivocado ahi y en una linea del primer select
entonces es asi:
Código sql:
Ver original
  1. SELECT     Usu.USUARIO, Usu.EMPRESA, a.FACTURA, a.MOVIL
  2.           (SELECT     (SUM(valor + sobrecargo)) AS TOTAL, SUM(CASE WHEN servicio = 'BAM' THEN valor + sobrecargo) AS 'BAM',
  3.       SUM(CASE WHEN servicio = 'MMS' THEN valor + sobrecargo) AS 'MMS', SUM(CASE WHEN servicio = 'SMR' THEN valor + sobrecargo)
  4.       AS 'SMR', SUM(CASE WHEN servicio = 'TTL' THEN valor + sobrecargo) AS 'TTL'
  5. FROM          TRAFICO
  6. WHERE      factura = a.factura AND movil = a.movil)
  7. FROM         TRAFICO a INNER JOIN
  8.                       [ID-USUARIO] Usu ON Usu.MOVIL = a.MOVIL INNER JOIN
  9.                       [ID-FACTURA] fac ON fac.FACTURA = a.FACTURA
  10. WHERE     (a.FACTURA = '16326769')
  11. GROUP BY a.FACTURA, Usu.EMPRESA, Usu.USUARIO, a.MOVIL
  12. ORDER BY a.FACTURA, Usu.EMPRESA, Usu.USUARIO, a.MOVIL
o tampoco va el segundo select?
__________________
Chilenos 100% Chilenos de Corazón
"Nuestra mayor gloria no está en no caer jamás, sino en levantarnos cada vez que caigamos"
  #12 (permalink)  
Antiguo 19/05/2009, 10:50
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Respuesta: Sumar 4 valores

No, tampoco va...............

SELECT Usu.USUARIO, Usu.EMPRESA, a.FACTURA, a.MOVIL,
'BA' = SUM(CASE WHEN.....................................),
'MMS' = SUM(CASE WHEN.....................................),
  #13 (permalink)  
Antiguo 19/05/2009, 10:58
Avatar de TonyChile  
Fecha de Ingreso: marzo-2009
Ubicación: Maipú, Santiago
Mensajes: 422
Antigüedad: 15 años, 2 meses
Puntos: 7
Respuesta: Sumar 4 valores

Lo deje asi y me arroja error en '=' o debo sacar el AS 'BAM' y todos los AS
Código sql:
Ver original
  1. SELECT     Usu.USUARIO, Usu.EMPRESA, a.FACTURA, a.MOVIL 'BAM' = SUM(CASE WHEN servicio = 'BAM' THEN valor + sobrecargo) AS 'BAM',
  2.                       'MMS' = SUM(CASE WHEN servicio = 'MMS' THEN valor + sobrecargo) AS 'MMS', 'SMR' = SUM(CASE WHEN servicio = 'SMR' THEN valor + sobrecargo)
  3.                        AS 'SMR', 'TLL' = SUM(CASE WHEN servicio = 'TTL' THEN valor + sobrecargo) AS 'TTL', 'VALOR' = SUM(valor + sobrecargo)) AS TOTAL
  4. FROM         trafico
  5. WHERE     factura = a.factura AND movil = a.movil)
  6. FROM         TRAFICO a INNER JOIN
  7.                       [ID-USUARIO] Usu ON Usu.MOVIL = a.MOVIL INNER JOIN
  8.                       [ID-FACTURA] fac ON fac.FACTURA = a.FACTURA
  9. WHERE     (a.FACTURA = '16326769')
  10. GROUP BY a.FACTURA, Usu.EMPRESA, Usu.USUARIO, a.MOVIL
  11. ORDER BY a.FACTURA, Usu.EMPRESA, Usu.USUARIO, a.MOVIL
__________________
Chilenos 100% Chilenos de Corazón
"Nuestra mayor gloria no está en no caer jamás, sino en levantarnos cada vez que caigamos"
  #14 (permalink)  
Antiguo 19/05/2009, 11:00
Avatar de TonyChile  
Fecha de Ingreso: marzo-2009
Ubicación: Maipú, Santiago
Mensajes: 422
Antigüedad: 15 años, 2 meses
Puntos: 7
Respuesta: Sumar 4 valores

lo deje sin los as pero dice lo mismo sintaxis incorrecta cerca de '='
Código sql:
Ver original
  1. SELECT     Usu.USUARIO, Usu.EMPRESA, a.FACTURA, a.MOVIL 'BAM' = SUM(CASE WHEN servicio = 'BAM' THEN valor + sobrecargo),
  2.                       'MMS' = SUM(CASE WHEN servicio = 'MMS' THEN valor + sobrecargo), 'SMR' = SUM(CASE WHEN servicio = 'SMR' THEN valor + sobrecargo),
  3.                       'TLL' = SUM(CASE WHEN servicio = 'TTL' THEN valor + sobrecargo), 'VALOR' = SUM(valor + sobrecargo))
  4. FROM         trafico
  5. WHERE     factura = a.factura AND movil = a.movil)
  6. FROM         TRAFICO a INNER JOIN
  7.                       [ID-USUARIO] Usu ON Usu.MOVIL = a.MOVIL INNER JOIN
  8.                       [ID-FACTURA] fac ON fac.FACTURA = a.FACTURA
  9. WHERE     (a.FACTURA = '16326769')
  10. GROUP BY a.FACTURA, Usu.EMPRESA, Usu.USUARIO, a.MOVIL
  11. ORDER BY a.FACTURA, Usu.EMPRESA, Usu.USUARIO, a.MOVIL
__________________
Chilenos 100% Chilenos de Corazón
"Nuestra mayor gloria no está en no caer jamás, sino en levantarnos cada vez que caigamos"
  #15 (permalink)  
Antiguo 19/05/2009, 11:02
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Respuesta: Sumar 4 valores

Te hace falta cerrar el WHEN

'BAM' = SUM(CASE WHEN servicio = 'BAM' THEN valor + sobrecargo END),
  #16 (permalink)  
Antiguo 19/05/2009, 12:33
Avatar de TonyChile  
Fecha de Ingreso: marzo-2009
Ubicación: Maipú, Santiago
Mensajes: 422
Antigüedad: 15 años, 2 meses
Puntos: 7
Respuesta: Sumar 4 valores

hay una sintaxis incorrecta cerca del 'END'
Código sql:
Ver original
  1. SELECT     Usu.USUARIO, Usu.EMPRESA, a.FACTURA, a.MOVIL, 'BAM' = SUM(CASE WHEN servicio = 'BAM' THEN valor + sobrecargo END),
  2.                       'MMS' = SUM(CASE WHEN servicio = 'MMS' THEN valor + sobrecargo END), 'SMR' = SUM(CASE WHEN servicio = 'SMR' THEN valor + sobrecargo END),
  3.                        'TLL' = SUM(CASE WHEN servicio = 'TTL' THEN valor + sobrecargo END), 'VALOR' = SUM(valor + sobrecargo END)
  4. FROM         trafico
  5. WHERE     factura = a.factura AND movil = a.movil)
  6. FROM         TRAFICO a INNER JOIN
  7.                       [ID-USUARIO] Usu ON Usu.MOVIL = a.MOVIL INNER JOIN
  8.                       [ID-FACTURA] fac ON fac.FACTURA = a.FACTURA
  9. WHERE     (a.FACTURA = '16326769')
  10. GROUP BY a.FACTURA, Usu.EMPRESA, Usu.USUARIO, a.MOVIL
  11. ORDER BY a.FACTURA, Usu.EMPRESA, Usu.USUARIO, a.MOVIL
__________________
Chilenos 100% Chilenos de Corazón
"Nuestra mayor gloria no está en no caer jamás, sino en levantarnos cada vez que caigamos"
  #17 (permalink)  
Antiguo 19/05/2009, 14:23
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Respuesta: Sumar 4 valores

Amigo, lea usted en su ayuda en linea sobre CASE WHEN.....END

El problema es que en esta linea

'VALOR' = SUM(valor + sobrecargo END)

No hay ningun CASE, cierto???
  #18 (permalink)  
Antiguo 19/05/2009, 14:45
Avatar de TonyChile  
Fecha de Ingreso: marzo-2009
Ubicación: Maipú, Santiago
Mensajes: 422
Antigüedad: 15 años, 2 meses
Puntos: 7
Respuesta: Sumar 4 valores

Muy cierto amigo gracias pero me sale un error de ')'
Código sql:
Ver original
  1. SELECT     Usu.USUARIO, Usu.EMPRESA, a.FACTURA, a.MOVIL, 'BAM' = SUM(CASE WHEN servicio = 'BAM' THEN valor + sobrecargo END),
  2.                       'MMS' = SUM(CASE WHEN servicio = 'MMS' THEN valor + sobrecargo END), 'SMR' = SUM(CASE WHEN servicio = 'SMR' THEN valor + sobrecargo END),
  3.                        'TLL' = SUM(CASE WHEN servicio = 'TTL' THEN valor + sobrecargo END), 'VALOR' = SUM(valor + sobrecargo)
  4. FROM         trafico
  5. WHERE     factura = a.factura AND movil = a.movil)
  6. FROM         TRAFICO a INNER JOIN
  7.                       [ID-USUARIO] Usu ON Usu.MOVIL = a.MOVIL INNER JOIN
  8.                       [ID-FACTURA] fac ON fac.FACTURA = a.FACTURA
  9. WHERE     (a.FACTURA = '16326769')
  10. GROUP BY a.FACTURA, Usu.EMPRESA, Usu.USUARIO, a.MOVIL
  11. ORDER BY a.FACTURA, Usu.EMPRESA, Usu.USUARIO, a.MOVIL

pero me arroja un error en
WHERE factura = a.factura AND movil = a.movil) el parentesis esta de mas o me falta poner otro porque si lo saco me arroja error cerca FROM
y es claro ya que no puede venir un where y despues el from cierto pero donde va el '(' que falta
__________________
Chilenos 100% Chilenos de Corazón
"Nuestra mayor gloria no está en no caer jamás, sino en levantarnos cada vez que caigamos"
  #19 (permalink)  
Antiguo 19/05/2009, 14:51
Avatar de TonyChile  
Fecha de Ingreso: marzo-2009
Ubicación: Maipú, Santiago
Mensajes: 422
Antigüedad: 15 años, 2 meses
Puntos: 7
Respuesta: Sumar 4 valores

Lo deje asi y me arroja resultados pero no como debe ser:
Código sql:
Ver original
  1. SELECT     Usu.USUARIO, Usu.EMPRESA, a.FACTURA, a.MOVIL, 'BAM' = SUM(CASE WHEN servicio = 'BAM' THEN valor + sobrecargo END),
  2.                       'MMS' = SUM(CASE WHEN servicio = 'MMS' THEN valor + sobrecargo END), 'SMR' = SUM(CASE WHEN servicio = 'SMR' THEN valor + sobrecargo END),
  3.                        'TLL' = SUM(CASE WHEN servicio = 'TTL' THEN valor + sobrecargo END), 'VALOR' = SUM(valor + sobrecargo)
  4. FROM         TRAFICO a INNER JOIN
  5.                       [ID-USUARIO] Usu ON Usu.MOVIL = a.MOVIL INNER JOIN
  6.                       [ID-FACTURA] fac ON fac.FACTURA = a.FACTURA
  7. WHERE     (a.FACTURA = '16326769')
  8. GROUP BY a.FACTURA, Usu.EMPRESA, Usu.USUARIO, a.MOVIL
  9. ORDER BY a.FACTURA, Usu.EMPRESA, Usu.USUARIO, a.MOVIL

Código:
usuario1	empresa	16311111	77611111	0		27897
usuario2	empresa	16311111	77622222	252		8225
sumo todos los campos incluyendo los no especificados
__________________
Chilenos 100% Chilenos de Corazón
"Nuestra mayor gloria no está en no caer jamás, sino en levantarnos cada vez que caigamos"
  #20 (permalink)  
Antiguo 19/05/2009, 15:38
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Respuesta: Sumar 4 valores

Prueba asi:

SELECT Usu.USUARIO, Usu.EMPRESA, a.FACTURA, a.MOVIL,
'BAM' = SUM(CASE WHEN servicio = 'BAM' THEN valor + sobrecargo END),
'MMS' = SUM(CASE WHEN servicio = 'MMS' THEN valor + sobrecargo END),
'SMR' = SUM(CASE WHEN servicio = 'SMR' THEN valor + sobrecargo END),
'TLL' = SUM(CASE WHEN servicio = 'TTL' THEN valor + sobrecargo END),
'VALOR' = SUM(valor + sobrecargo)
FROM TRAFICO a INNER JOIN [ID-USUARIO] Usu ON a.MOVIL = Usu.MOVIL
INNER JOIN [ID-FACTURA] fac ON a.FACTURA = fac.FACTURA
WHERE (a.FACTURA = '16326769')
GROUP BY a.FACTURA, Usu.EMPRESA, Usu.USUARIO, a.MOVIL
ORDER BY a.FACTURA, Usu.EMPRESA, Usu.USUARIO, a.MOVIL
  #21 (permalink)  
Antiguo 19/05/2009, 15:46
Avatar de TonyChile  
Fecha de Ingreso: marzo-2009
Ubicación: Maipú, Santiago
Mensajes: 422
Antigüedad: 15 años, 2 meses
Puntos: 7
Respuesta: Sumar 4 valores

No = q denante creo que lo que pasa es que hay q afinar el filtro al momento de hacer la suma de
'VALOR' = SUM(valor + sobrecargo)
porque esta tomando todos los valores incluso los q no necesito por eso los suma todos y no solo los 4 q deseo sumar (BAM,MMS,SMR,TEL)

Y otra cosa como lo pùedo hacer para que no salgan null sino '0'
__________________
Chilenos 100% Chilenos de Corazón
"Nuestra mayor gloria no está en no caer jamás, sino en levantarnos cada vez que caigamos"
  #22 (permalink)  
Antiguo 19/05/2009, 15:59
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 5 meses
Puntos: 53
Respuesta: Sumar 4 valores

siento que esta parte ya la había vivido..

nos vemos.
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #23 (permalink)  
Antiguo 19/05/2009, 16:07
Avatar de TonyChile  
Fecha de Ingreso: marzo-2009
Ubicación: Maipú, Santiago
Mensajes: 422
Antigüedad: 15 años, 2 meses
Puntos: 7
Respuesta: Sumar 4 valores

Cita:
Iniciado por GeoAvila Ver Mensaje
siento que esta parte ya la había vivido..

nos vemos.
si la de los null jajajja lo q pasa es q trate de hacerlo como me indicaste la otra vez pero no me funciono me arroja error en el = debe ser porque esta hecho de formas distintas.

Y lo otro en lo que me ayudaste fue en la suma total de los campos pero e tratado de sumar solo esos q indico y no me sale me los suma todos = no e podido hacer bien el filtro
__________________
Chilenos 100% Chilenos de Corazón
"Nuestra mayor gloria no está en no caer jamás, sino en levantarnos cada vez que caigamos"
  #24 (permalink)  
Antiguo 19/05/2009, 16:20
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Respuesta: Sumar 4 valores

Para que algo que sea NULL, te lo convierta a otro valor, esta la funcion ISNULL(VALOR, O)

'VALOR' = SUM(CASE WHEN servicio IN ('BAM', 'MMS', 'SMR','TLL') THEN valor + sobrecargo ELSE 0 END)
  #25 (permalink)  
Antiguo 20/05/2009, 08:27
Avatar de TonyChile  
Fecha de Ingreso: marzo-2009
Ubicación: Maipú, Santiago
Mensajes: 422
Antigüedad: 15 años, 2 meses
Puntos: 7
Respuesta: Sumar 4 valores

Muchas gracias iislas

ahora si funciona de manera y forma correcta te pasaste muchas gracias y disculpa todas las molestias

El codigo es este:
Código sql:
Ver original
  1. SELECT     Usu.USUARIO, Usu.EMPRESA, a.MOVIL, fac.PERIODO, a.FACTURA, 'BAM' = SUM(CASE WHEN servicio IN ('BAM')
  2.     THEN valor + sobrecargo ELSE 0 END), 'MMS' = SUM(CASE WHEN servicio IN ('MMS') THEN valor + sobrecargo ELSE 0 END),
  3.     'SMR' = SUM(CASE WHEN servicio IN ('SMR') THEN valor + sobrecargo ELSE 0 END), 'TLL' = SUM(CASE WHEN servicio IN ('TLL')
  4.      THEN valor + sobrecargo ELSE 0 END), 'VALOR' = SUM(CASE WHEN servicio IN ('BAM', 'MMS', 'SMR', 'TLL') THEN valor + sobrecargo ELSE 0 END)
  5. FROM         TRAFICO a INNER JOIN
  6.                       [ID-USUARIO] Usu ON a.MOVIL = Usu.MOVIL INNER JOIN
  7.                       [ID-FACTURA] fac ON a.FACTURA = fac.FACTURA
  8. WHERE     (a.FACTURA = '16326769')
  9. GROUP BY a.FACTURA, Usu.EMPRESA, Usu.USUARIO, a.MOVIL, fac.PERIODO
  10. ORDER BY Usu.EMPRESA, Usu.USUARIO, a.MOVIL

Cita:
usuario empresa movil periodo factura BAM MMS SMR TLL TOTAL

Usuario1 empresa1 77611111 0903 Marzo 2009 16311111 1222 0 0 0 1222
Usuario2 empresa1 77622222 0903 Marzo 2009 16311111 0 0 0 1704 1704
Usuario3 empresa1 77633333 0903 Marzo 2009 16311111 0 84 0 0 84
Usuario4 empresa2 77644444 0903 Marzo 2009 16311111 0 0 0 0 0
Usuario5 empresa2 77655555 0903 Marzo 2009 16311111 121 0 0 0 121
Que estes muy bien
__________________
Chilenos 100% Chilenos de Corazón
"Nuestra mayor gloria no está en no caer jamás, sino en levantarnos cada vez que caigamos"
  #26 (permalink)  
Antiguo 20/05/2009, 09:04
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Respuesta: Sumar 4 valores

Tony

Solo espero que esta posta, bastante extensa, sirva como referencia para otros que lean y no tengan la vision del uso CASE- WHEN- THEN- ELSE- END

Saludos
  #27 (permalink)  
Antiguo 20/05/2009, 09:07
Avatar de TonyChile  
Fecha de Ingreso: marzo-2009
Ubicación: Maipú, Santiago
Mensajes: 422
Antigüedad: 15 años, 2 meses
Puntos: 7
Respuesta: Sumar 4 valores

Cita:
Iniciado por iislas Ver Mensaje
Tony

Solo espero que esta posta, bastante extensa, sirva como referencia para otros que lean y no tengan la vision del uso CASE- WHEN- THEN- ELSE- END

Saludos

yo espero lo mismo por eso trate de poner solucionado en el nombre del tema como lo hice en el primer post pero no se ve reflejado en el foro de sql lo habia puesto cosa q si alguien tenia un problema similar supiera q este tema tenia respuesta pero no funciono

gracias nuevamente
__________________
Chilenos 100% Chilenos de Corazón
"Nuestra mayor gloria no está en no caer jamás, sino en levantarnos cada vez que caigamos"
  #28 (permalink)  
Antiguo 20/05/2009, 09:08
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Respuesta: Sumar 4 valores

De nada, un saludo (ya parece messenger, ja)
  #29 (permalink)  
Antiguo 20/05/2009, 09:12
Avatar de TonyChile  
Fecha de Ingreso: marzo-2009
Ubicación: Maipú, Santiago
Mensajes: 422
Antigüedad: 15 años, 2 meses
Puntos: 7
Respuesta: Sumar 4 valores

Cita:
Iniciado por iislas Ver Mensaje
De nada, un saludo (ya parece messenger, ja)

wuaaaaaaaaaa

y no es chiste
__________________
Chilenos 100% Chilenos de Corazón
"Nuestra mayor gloria no está en no caer jamás, sino en levantarnos cada vez que caigamos"
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:13.