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

Sumar campos en una misma columna

Estas en el tema de Sumar campos en una misma columna en el foro de SQL Server en Foros del Web. Hola, tengo la siguiente duda. Tengo una tabla la cual quiero sumar los debitos y los creditos y agruparlos por codigo Código: CODIGO D/C IMPORTE ...
  #1 (permalink)  
Antiguo 18/05/2011, 11:15
 
Fecha de Ingreso: marzo-2011
Mensajes: 75
Antigüedad: 13 años
Puntos: 6
Pregunta Sumar campos en una misma columna

Hola, tengo la siguiente duda. Tengo una tabla la cual quiero sumar los debitos y los creditos y agruparlos por codigo

Código:
CODIGO  D/C                IMPORTE
1              D                      100
1              D                      100
1              C                     -200
3-             D                     -500
3              C                      -500
Esta es la tabla que tengo, en este caso el resultado que quiero seria:


Código:
CODIGO    IMPORTE
1                   0
3                   0

Originalmente los creditos no estan en negativo, por lo que en la consulta utilizo la funcion SUM para multiplicarlos por -1.

Alguna sugerencia?
Gracias
  #2 (permalink)  
Antiguo 18/05/2011, 11:34
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 7 meses
Puntos: 774
Respuesta: Sumar campos en una misma columna

Código SQL:
Ver original
  1. CREATE TABLE #temp(
  2. codigo INT,
  3. dc VARCHAR(20),
  4. importe INT
  5. )
  6.  
  7. INSERT INTO #temp (codigo,dc,importe) VALUES (1,'D',100)
  8. INSERT INTO #temp (codigo,dc,importe) VALUES (1,'D',100)
  9. INSERT INTO #temp (codigo,dc,importe) VALUES (1,'C',200)
  10. INSERT INTO #temp (codigo,dc,importe) VALUES (3,'D',500)
  11. INSERT INTO #temp (codigo,dc,importe) VALUES (3,'C',500)
  12.  
  13.  
  14. SELECT codigo,SUM(importe) Importe FROM
  15. (
  16. SELECT codigo, dc,
  17. CASE WHEN dc='D' THEN importe ELSE importe*-1 END AS importe FROM #temp
  18. )t1 GROUP BY codigo

Prueba con esto :)

Saludos!!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 18/05/2011, 11:47
 
Fecha de Ingreso: marzo-2011
Mensajes: 75
Antigüedad: 13 años
Puntos: 6
Respuesta: Sumar campos en una misma columna

Funiciono. Graciass
  #4 (permalink)  
Antiguo 18/05/2011, 14:34
Avatar de Inicia  
Fecha de Ingreso: octubre-2010
Ubicación: Actualmente en GDL
Mensajes: 135
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Sumar campos en una misma columna

Yo te recomendaría usar un CASE.. para que no crees tablas temporales :)
  #5 (permalink)  
Antiguo 18/05/2011, 15:20
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 7 meses
Puntos: 774
Respuesta: Sumar campos en una misma columna

Cita:
Iniciado por Inicia Ver Mensaje
Yo te recomendaría usar un CASE.. para que no crees tablas temporales :)
La tabla temporal era la que use para el ejemplo nada mas :) el puede sustituirla por la tabla que el usa
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: campos, columna
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 23:33.