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

Obtener de una resta de resultado de dos consultas

Estas en el tema de Obtener de una resta de resultado de dos consultas en el foro de Mysql en Foros del Web. Buenas tengo dos consultas una calcula el dinero ganado de un usuario y la otra el dinero que esta a gastado. Son un poco largas ...
  #1 (permalink)  
Antiguo 09/05/2012, 11:03
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 11 meses
Puntos: 50
Obtener de una resta de resultado de dos consultas

Buenas


tengo dos consultas una calcula el dinero ganado de un usuario y la otra el dinero que esta a gastado.

Son un poco largas pero la idea es en una sola consulta calcular el dinero real del usuario DineroGanado-DineroGastado .. Intente unirlas con inner join pero al parecer me quea mal una union y me calcula mal el resultado.


Intente con union pero no me funciono n ose si lo estoy haciendo mal o no se puede con esta funcion... existe algo parecido que me permita restar los resultados de las dos consultas fácilmente? GRACIAS


select sum(valor) from compras where...........

select sum(valor) from gastos where...........
  #2 (permalink)  
Antiguo 09/05/2012, 11:28
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Obtener de una resta de resultado de dos consultas

Para hacerla correctamente y en una consulta, necesitas usar también la tabla de Usuarios.
Código MySQL:
Ver original
  1. SELECT U.user_id, SUM(G.valor) gastos, SUM(C.valor) compras
  2.        usuarios U
  3.        LEFT JOIN gasto G ON U.user_id = G.user_id
  4.        LEFT JOIN compas C ON U.user_id = C.user_id
  5. GROUP BY U.user_id
__________________
¿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 09/05/2012, 11:31
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Obtener de una resta de resultado de dos consultas

Código MySQL:
Ver original
  1. select Sbc.usuario,
  2.           sum(Sbc.DineroGanado),
  3.           sum(Sbc.DineroGastado),
  4.           sum(Sbc.DineroGanado)-sum(Sbc.DineroGastado) as DineroAhorrado
  5. (select usuario,
  6.           sum(valor) as DineroGanado,
  7.           0 as DineroGastado
  8. from compras
  9. where...........
  10. group by usuario
  11. select usuario,
  12.           0  as DineroGanado,
  13.           sum(valor) as DineroGastado
  14. from gastos
  15. where...........
  16. group by usuario) as Sbc
  17. group by Sbc.usuario;

Completa o quita los WHERE.....

Los ingresos vienen de la tabla compras? no seran ventas...
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 09/05/2012 a las 11:33 Razón: Un saludo gnzsoloyo

Etiquetas: join, resta, select, resultados
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 13:24.