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.
Título: Re: Consulta suma de valores mas neto segun signo
Publicado por: RadicalEd en Martes 31 de Marzo de 2009, 20:20
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.
Título: Re: Consulta suma de valores mas neto segun signo
Publicado por: goldenscriptup en Miércoles 1 de Abril de 2009, 12:53
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
SELECTDISTINCT a.login,(SELECTSUM(df.profit)FROM pruebadatos df WHERE df.profit >0AND df.login = a.login)AS ganancia,(SELECTSUM(wq.profit)AS perdida FROM pruebadatos wq WHERE wq.profit <0AND wq.login = a.login)AS perdida,(SELECTSUM(lk.profit)FROM pruebadatos lk WHERE lk.profit >0AND lk.login = a.login)- ABS((SELECTSUM(yu.profit)AS perdida FROM pruebadatos yu WHERE yu.profit <0AND yu.login = a.login))AS neto FROM pruebadatos a WHERE a.login =20;
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 ;)
Título: Re: Consulta suma de valores mas neto segun signo
Publicado por: F_Tanori en Miércoles 1 de Abril de 2009, 18:34