• Viernes 3 de Mayo de 2024, 02:12

Autor Tema:  Consulta suma de valores mas neto segun signo  (Leído 1580 veces)

Martillo

  • Miembro activo
  • **
  • Mensajes: 55
    • Ver Perfil
Consulta suma de valores mas neto segun signo
« en: Lunes 30 de Marzo de 2009, 21:14 »
0
Hola


tengo una base de datos la cual no puedo modificar, tiene los siguiente campos

ticket - numero transaccion
login - login usuario
profit - ganacia o perdida del usuario (puede ser un numero + o -)


ticket    login          profit
2121      20             10000
2122      20             15000
2123      20            -15000


y necesito sumar en distintos campos el total de ganancias con perdidas mas su neto


SELECT login, if (profit < 0, sum(profit), '' ) as perdida, if (profit > 0, sum(profit), '' ) as ganancia FROM `tabla` where login = 20;

pero me retorna solo el primero campo.


login     perdida      ganancia
20                          10000



necesito que me retorne algo como lo siguiente, una sumatoria de todas las perdidas, junto con todas las ganancias y que me genere un neto con la suma de estos dos valores, algo asi.

login perdida     ganancia       neto
20     -15000     250000          10000



alguien me podria guiar como hacerlo por favor.


saludos.
[size=109]Solo sed que nada sed!!!!!![/size]

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Consulta suma de valores mas neto segun signo
« Respuesta #1 en: Martes 31 de Marzo de 2009, 20:20 »
0
Puede que la respuesta que te daré te frustré, aunque puede que no sea así; pero la forma que veo más fácil de hacerlo es utilizando un lenguaje de por medio que te extraiga esos datos y te los imprima, ya que directamente desde el motor no lo vas a poder hacer.

Es solo lo que yo pienso que es, pueda que no sea así y otro forero te pueda ayudar.
El pasado son solo recuerdos, el futuro son solo sueños

goldenscriptup

  • Miembro activo
  • **
  • Mensajes: 40
  • Nacionalidad: mx
    • Ver Perfil
Re: Consulta suma de valores mas neto segun signo
« Respuesta #2 en: Miércoles 1 de Abril de 2009, 12:53 »
0
Yo creo que si se puede realizar con solo consultas en SQL :) , solo hay que usar un poco la imaginacion :comp: .

Yo hice este query y me regresa.
login     ganancia    perdida   neto
 20          25000    -15000      10000

Código: SQL
  1.  
  2. SELECT DISTINCT a.login,(SELECT SUM(df.profit) FROM pruebadatos df WHERE df.profit > 0 AND df.login = a.login) AS ganancia,(SELECT SUM(wq.profit) AS perdida FROM pruebadatos wq WHERE wq.profit < 0 AND wq.login = a.login) AS perdida,(SELECT SUM(lk.profit) FROM pruebadatos lk WHERE lk.profit > 0 AND lk.login = a.login)- ABS((SELECT SUM(yu.profit) AS perdida FROM pruebadatos yu WHERE yu.profit < 0 AND yu.login = a.login)) AS neto FROM pruebadatos a WHERE a.login = 20;
  3.  
  4.  

Yo pienso que tambien se puede hacer de alguna otra forma pero esta es la forma que se me ocurrio :alien: .
Espero que te sea de utilidad ;)
"Sorprendedme retadme desadfiadme y desafio a vos" :huh:

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Consulta suma de valores mas neto segun signo
« Respuesta #3 en: Miércoles 1 de Abril de 2009, 18:34 »
0
Tambien puedes probar de esta manera ...

Código: SQL
  1. SELECT login, SUM(IF (profit<0,profit *-1,0)) AS perdida, SUM(IF (profit>0,profit,0)) AS ganancia,(SUM(IF (profit>0,profit,0)) - SUM(IF (profit<0,profit *-1,0))) AS Neto FROM `tabla`
  2. WHERE Login =20
  3. GROUP BY Login
  4.  
  5.  

Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================