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

Restar selects sobre misma tabla

Estas en el tema de Restar selects sobre misma tabla en el foro de Mysql en Foros del Web. La verdad que no consigo la manera de hacerlo en una sola sentencia: Tabla: jornada presupuesto usuario 1 10 1 1 11 2 2 15 ...
  #1 (permalink)  
Antiguo 28/12/2010, 16:08
Avatar de grecacer  
Fecha de Ingreso: mayo-2005
Ubicación: Las Palmas de Gran Canari
Mensajes: 312
Antigüedad: 14 años, 9 meses
Puntos: 0
Restar selects sobre misma tabla

La verdad que no consigo la manera de hacerlo en una sola sentencia:

Tabla:

jornada presupuesto usuario

1 10 1
1 11 2
2 15 1
2 14 2
3 18 1
3 15 2

La select que en principio necesito es que para cada usuario me haga la resta entre el presupuesto de la jornada 3 menos el presupuesto de la jornada 1
__________________
Tu sexshop online
  #2 (permalink)  
Antiguo 29/12/2010, 07:12
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 11 años, 11 meses
Puntos: 574
Respuesta: Restar selects sobre misma tabla

Código SQL:
Ver original
  1. SELECT Tabla.usuario,
  2. SUM(IF(jornada=3,presupuesto,0)-IF(jornada=1,presupuesto,0)) AS Saldo3_1
  3. FROM Tabla
  4. GROUP BY Tabla.usuario;

Código SQL:
Ver original
  1. SELECT Tabla.usuario,
  2. SUM(IF(jornada=3,presupuesto,0))-SUM(IF(jornada=1,presupuesto,0)) AS Saldo3_1
  3. FROM Tabla
  4. GROUP BY Tabla.usuario;

1 8
2 4

Si?
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 29/12/2010, 10:16
Avatar de grecacer  
Fecha de Ingreso: mayo-2005
Ubicación: Las Palmas de Gran Canari
Mensajes: 312
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Restar selects sobre misma tabla

perfecto, muchas gracias por la rapidez y por la efectiva contestación.

Ya si no fuera mucho pedir, habría alguna manera de almacenar en una variable el valor de
Sum(IF(jornada=3,presupuesto,0) por un lado

y de
IF(jornada=1,presupuesto,0) por otro.


Repito mi agradecimiento.
__________________
Tu sexshop online
  #4 (permalink)  
Antiguo 30/12/2010, 02:28
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 11 años, 11 meses
Puntos: 574
Respuesta: Restar selects sobre misma tabla

Código MySQL:
Ver original
  1. SELECT Tabla.usuario,
  2. Sum(IF(jornada=3,presupuesto,0)) as Presup3,
  3. Sum(IF(jornada=1,presupuesto,0)) as Presup1,
  4. Sum(IF(jornada=3,presupuesto,0)-IF(jornada=1,presupuesto,0)) AS Saldo3_1
  5. FROM Tabla
  6. GROUP BY Tabla.usuario;

Ningún problema pero a veces la prueba y error también sirve para ganar tiempo y se aprenden cosas.

Para obtener como campos separados esos valores, ahí lo tienes, para ponerlo en una variable tendrías que decir en que lenguaje quieres trabajar.... php,java,asp,.net,c,c++....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #5 (permalink)  
Antiguo 30/12/2010, 08:55
Avatar de grecacer  
Fecha de Ingreso: mayo-2005
Ubicación: Las Palmas de Gran Canari
Mensajes: 312
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Restar selects sobre misma tabla

Gracias nuevamente, estoy trabajando con php.
__________________
Tu sexshop online

Etiquetas: restar, selects, tablas
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 22:58.