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

[SOLUCIONADO] devolver 2 columnas dependiendo del valor de campo

Estas en el tema de devolver 2 columnas dependiendo del valor de campo en el foro de Mysql en Foros del Web. hola como les va? yo ando un poco atorada con lo siguiente: tengo la siguiente tabla: Código: ----------------+ tabla | ----------------+ id | clave | ...
  #1 (permalink)  
Antiguo 13/09/2013, 11:01
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 14 años, 6 meses
Puntos: 23
devolver 2 columnas dependiendo del valor de campo

hola como les va?

yo ando un poco atorada con lo siguiente:

tengo la siguiente tabla:

Código:
----------------+
tabla           |
----------------+
id              |
clave           |
total           |
mes             |
----------------+
supongamos que tenemos estos valores:

Código:
id	1
clave	100
total	2.4
mes	09

id	2
clave	200
total	-5.55
mes	09

id	3
clave	300
total	-70
mes	09

id	4
clave	400
total	4.3
mes	08
Necesito del campo total sumar los valores positivos Y los negativos, agruparlos por mes sacar Y sacar un total por mes, es decir un resultado asi:

Código:
mes	total	total_positivos	total_negativos
09	3	2.4		-75.55
08	1	4.3		0
Intente dos LEFT JOIN a la misma tabla para sacar primero la suma de positivos Y luego la de negativos, pero siempre me salia NULL el segundo LEFT, tal vez haya una forma mas practica?

Código MySQL:
Ver original
  1. SELECT t1.*, COUNT(*) AS total, t2.suma_positivos, t3.suma_negativos
  2. FROM tabla t1
  3. LEFT JOIN (SELECT clave, SUM(total) AS suma_positivos WHERE total>0 GROUP BY mes) t2 ON t1.clave=t2.clave
  4. LEFT JOIN (SELECT clave, SUM(total) AS suma_negativos WHERE total<0 GROUP BY mes) t2 ON t1.clave=t3.clave

Eso no me resulta, ya que el count no cuenta por mes, ni estoy obteniendo la suma de negativos, alguna idea? gracias

Última edición por catpaw; 13/09/2013 a las 11:11
  #2 (permalink)  
Antiguo 13/09/2013, 11:25
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: devolver 2 columnas dependiendo del valor de campo

No compliques las cosas:
Código MySQL:
Ver original
  1.     mes, COUNT(*) total,
  2.     SUM(IF(total => 0, total, 0)) suma_positivos,
  3.     SUM(IF(total < 0, total, 0)) suma_negativos
  4. FROM tabla

Nota: Por definición, se considera que el cero es un numero positivo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 13/09/2013, 11:34
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 14 años, 6 meses
Puntos: 23
Respuesta: devolver 2 columnas dependiendo del valor de campo



hola gnzsoloyo vaya lio que estaba haciendo verdad?



Ya quedo de lujo, muchas gracias como siempre.

Etiquetas: campo, columnas, dependiendo, devolver, join, tabla, valor
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 17:50.