Gracias de nuevo, Jesús,
Cita:
Iniciado por jurena
Dices que en usuarios un id_usuario aparece nada más que una vez, y así debe ser, pero si un id_usuario se repite en simulador, aunque sea una sola vez, ya tienes que agrupar. Solo en el caso de que todo id_usuario tuviera solo un registro en simulador relacionado podrías no usar ese primer group by. De acuerdo, si es así.
Sí, es así, en simulador nunca se repite id_usuario, ya que es lo mismo que id en usuarios y ahí es único y autoincrementable.
Cita:
Iniciado por jurena
Pero en la segunda consulta, es necesario, pues un sponsor lo puede ser de varios usuarios, y eso te obliga a agrupar para sacar la suma de ese sponsor. En ese caso, si tu versión de MySQL permite subconsultas, esta debería funcionar:
A mí me funciona:
Código MySQL:
Ver original usu2.nombre,
usu2.apellidos,
usu2.id IDUSUARIO,
IFNULL(t1.impusu
,0) ImporteUsuario
, IFNULL(t1.refusu
,0) RequeridoUsuario
, IFNULL(sim.importe
, 0 ) impusu
, IFNULL(sim.referidos
, 0 ) refusu
, '0' impsp
, '0'refsp
(SELECT usu.id_sponsor
, '0', '0', SUM( sim.importe
) , SUM( sim.referidos
)
Si las tablas se llaman así y los campos también, copia esta consulta y pruébala.
Perfecto, funciona en cuanto a que arroja datos que, aparentemente tienen sentido, pero tengo 2 problemas aquí. He ejecutado esta consulta, como verás he cambiado algún alias para que me coincidan con los que había usado ya en el resto de la aplicación y he intentado añadir el campo cual de la tabla simulador, pero no he conseguido que me lo muestre en los resultados; sé que es porque no lo he "colocado" bien, pero lo que no sé es cómo "colocarlo" bien, y sin ese campo, no puedo saber si la aplicación está trabajando conforme a lo que debe hacer, puesto que, al ser un campo de control, necesito consultarlo y actualizarlo según convenga, va la consulta:
Código MySQL:
Ver original usu2.id,
usu2.nombre,
usu2.apellidos,
usu2.id_sponsor sim_sp,
usu2.codigo,
IFNULL(t1.refusu
,0) referidos
, ((SELECT usu.id idusuario
, sim.cual
, IFNULL(sim.importe
, 0 ) impusu
, IFNULL(sim.referidos
, 0 ) refusu
, '0' impsp
, '0'refsp
(SELECT usu.id_sponsor
, sim.cual
, '0', '0', SUM( sim.importe
) , SUM( sim.referidos
)
Creo que si conseguimos esto, ya estará toda esta parte resuelta y podré dejar de darte la tabarra, que con lo que me estás ayudando, imagino que tendrás ganas de que te deje tranquilo.
Espero que me puedas seguir ayudando...
Muchas gracias de nuevo.
.