Ver Mensaje Individual
  #22 (permalink)  
Antiguo 05/01/2013, 11:52
rbczgz
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Consulta múltiple con INNER JOIN

Gracias Jesús, te cuento:

Cita:
Iniciado por jurena Ver Mensaje
Rubén,
creo que el problema es tu versión de MySQL, una versión antigua que no acepta subconsultas. Dinos qué versión usas y no te agobies.
La versión es 5.0.96.

Cita:
Iniciado por jurena Ver Mensaje
Vete despacito haciendo pruebas con pedazos por separadom me refiero a los que están antes y después del UNION ALL, pero sin paréntesis, claro. Prueba por separado cada uno de esos select para que veas qué ocurre. Eso sí debería mostrarte datos.
Sí, me muestra datos, pero son los mismos que con una consulta simple, hago esto:

Código MySQL:
Ver original
  1.    usu2.nombre,
  2.    usu2.apellidos,
  3.    usu2.id IDUSUARIO,
  4.    IFNULL(SUM(t1.impusu),0) ImporteUsuario,
  5.    IFNULL(SUM(t1.refusu),0) RequeridoUsuario,
  6.    IFNULL(SUM(t1.impsp),0) ImporteSponsor,
  7.    IFNULL(SUM(t1.refsp),0) UsuarioSponsor
  8. FROM usuarios usu2 LEFT JOIN (
  9. SELECT usu.id idusuario,
  10. IFNULL( SUM( sim.importe ) , 0 ) impusu,
  11. IFNULL( SUM( sim.referidos ) , 0 ) refusu, '0'impsp, '0'refsp
  12. FROM simulador sim
  13. INNER JOIN usuarios usu ON sim.id_usuario = usu.id
  14. GROUP BY sim.id_usuario
  15. ORDER BY sim.id_usuario
  16. )t1 ON usu2.id = t1.idusuario GROUP BY usu2.id ORDER BY usu2.id

Y me muestra el id, nombre, apellidos y código, nada más y si hago esto otro:

Código MySQL:
Ver original
  1. SELECT usu.id_sponsor, '0', '0', SUM( sim.importe ) , SUM( sim.referidos )
  2. FROM simulador sim
  3. INNER JOIN usuarios usu ON sim.id_usuario = usu.id
  4. GROUP BY usu.id_sponsor
  5. ORDER BY usu.id_sponsor

Me muestra unos datos muy extraños, porque el campo referidos no debería poder ser negativo y me muestra todos en negativo, aunque puede que ese problema venga de la programación por lo que decía antes, no consigo obtener bien los datos...

No quiero tirar la toalla, pero no sé qué más hacer...

Solo necesito obtener los campos correctos, con la consulta que me has pasado antes, creo que sale casi bien, pero como no sé quitar las sumas sin que se vaya todo al traste, no lo puedo hacer andar...

Simplemente es tener por un lado, los datos básicos: id, nombre, apellidos y código, por otro lado, importe y referidos como usuario y por último, importe y referidos como sponsor, sería algo así:

|..id.|...nombre...|...apellidos...|.codigo.|.spon sor.|......importe.........|......referidos....... ..|....sponsor_importe...|....sponsor_referidos... |
|...1.|...pepe.....|...perez.......|...1001.|..... ..1.|..importecomousuario..|..referidoscomousuario ..|..importedesusponsor..|..referidosdesusponsor.. |
|...2.|...pepe2....|...perez2......|...1002.|..... ..1.|..importecomousuario..|..referidoscomousuario ..|.....importedeid_1....|....referidosdeid_1..... |

Yo no sé cómo hacerlo pero seguro que no es tan difícil como me lo parece a mi sin los conocimientos necesarios...

Además, cuanto más cerca parece que estoy, más nervioso y más ganas me entran de conseguirlo... pero me siento impotente...

.