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

Sumar campos de segun una condicion

Estas en el tema de Sumar campos de segun una condicion en el foro de PostgreSQL en Foros del Web. Hola a todos, Tengo una tabla movimientos y una tabla cuentas, lo que quiero hacer es una consulta que me permita mostrar la suma los ...
  #1 (permalink)  
Antiguo 27/10/2010, 13:49
 
Fecha de Ingreso: enero-2010
Ubicación: Soledad-Atlántico
Mensajes: 21
Antigüedad: 14 años, 3 meses
Puntos: 1
Pregunta Sumar campos de segun una condicion

Hola a todos,
Tengo una tabla movimientos y una tabla cuentas, lo que quiero hacer es una consulta que me permita mostrar la suma los valores de todas las cuentas que tengan un prefijo igual, la consulta me debe traer el nombre de la cuenta y los totales en debito y credito de todas las subcuentas que dependen de ella.
Código SQL:
Ver original
  1. SELECT
  2.     substr(movimiento.codcuent,1,4),
  3.     cuentas.nombre,
  4.     movimiento.debito,
  5.     movimiento.credito
  6. FROM movimiento
  7. INNER JOIN cuentas ON substr(movimiento.codcuent,1,4) = cuentas.codigo

Al hacer esta consulta me muestra las cuentas con los valores pero si hay varias cuentas repetidas quiero que sume sus valores y quede en un solo registro.

He visto en el Foro preguntas similares pero en estas ya saben cuales son los criterios para agrupar, en mi caso son muchas cuentas y no podria hacer un select case si no se cuales son los valores que se van a repetir.
  #2 (permalink)  
Antiguo 27/10/2010, 14:45
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Sumar campos de segun una condicion

Nos dices si sería alg así

Código SQL:
Ver original
  1. SELECT
  2.     cuentas.nombre,
  3.     SUM(movimiento.debito) AS suma_debito,
  4.     SUM(movimiento.credito) AS suma_credito
  5. FROM movimiento
  6. INNER JOIN cuentas ON substr(movimiento.codcuent,1,4) = cuentas.codigo
  7. GROUP BY cuentas.nombre;

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 27/10/2010, 15:18
 
Fecha de Ingreso: enero-2010
Ubicación: Soledad-Atlántico
Mensajes: 21
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Sumar campos de segun una condicion

Esta consulta me arrojaria esto:


Código:
CODIGO       CUENTA       DEBE     HABER
22051538    NACIONALES    325000  0
11100501    BANCOS           0       325000
22051523    NACIONALES    100000  0
se deben agrupar por los primeros cuatro digitos en este caso deberia sumarse los valores que hay en NACIONALES que me quede algo asi

Código:
CODIGO       CUENTA       DEBE     HABER
2205        NACIONALES    425000  0
1110        BANCOS           0       325000
No sé si me explico bien.
  #4 (permalink)  
Antiguo 27/10/2010, 15:22
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Sumar campos de segun una condicion

entonces así:

Código SQL:
Ver original
  1. SELECT
  2.     substr(movimiento.codcuent,1,4),
  3.     SUM(movimiento.debito) AS suma_debito,
  4.     SUM(movimiento.credito) AS suma_credito
  5. FROM movimiento
  6. INNER JOIN cuentas ON substr(movimiento.codcuent,1,4) = cuentas.codigo
  7. GROUP BY substr(movimiento.codcuent,1,4);
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 27/10/2010, 15:44
 
Fecha de Ingreso: enero-2010
Ubicación: Soledad-Atlántico
Mensajes: 21
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Sumar campos de segun una condicion

Me da un error de sintaxis, asi no lo he podido hacer.

Código:
ERROR:  error de sintaxis en o cerca de «(»
LINE 2: *   substr(movimiento.codcuent,1,4), 
                  ^

********** Error **********

ERROR: error de sintaxis en o cerca de «(»
SQL state: 42601
Character: 19
  #6 (permalink)  
Antiguo 27/10/2010, 15:58
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Sumar campos de segun una condicion

No tiene sentido tu error.

Seguro estas ejecutando bien toda la consulta?

La primera consulta que posteas te corre sin problemas?
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #7 (permalink)  
Antiguo 28/10/2010, 07:10
 
Fecha de Ingreso: enero-2010
Ubicación: Soledad-Atlántico
Mensajes: 21
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Sumar campos de segun una condicion

Si me funcionó muchisimas gracias, me da error cuando copio y pego desde acá pero la escribi y todo perfecto. De nuevo muchas gracias.

Última edición por melina8050; 28/10/2010 a las 08:25

Etiquetas: campos
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:35.