Cita:
Iniciado por jurena
Este no es un foro de programación, no lo olvides.
Sí, lo sé, tienes razón, pero lo posteé aquí porque lo que necesito realmente es saber cómo debo hacer la consulta para obtener los datos que necesito para la programación.
Cita:
Iniciado por jurena
Yo voy a proporcionarte una propuesta mediante SQL, es decir, una consulta a la base de datos. Pruébala y verás lo que ocurre:
Código MySQL:
Ver original usu2.nombre,
usu2.apellidos,
usu2.id IDUSUARIO,
IFNULL( SUM( sim.referidos
) , 0 ) refusu
, '0'impsp
, '0'refsp
)
SELECT usu.id_sponsor
, '0', '0', SUM( sim.importe
) , SUM( sim.referidos
)
La verdad es que te lo has currado como si fuera para ti, te lo agradezco de todo corazón. La he probado pero, aparentemente, no da los datos necesarios, pero como da más datos de los que necesito y, la verdad, es una consulta que a mi se me escapa por completo a pesar de tu estupenda explicación, al dar más datos, ya no sé cómo hacer para que me dé los que necesito solamente y después, en la programación hacer el resto.
Cita:
Iniciado por jurena
con programación tal vez harías por separado las dos consultas y luego al recorrer una comparar con los datos de la otra y pasarlos, o cargar en un array y luego al hacer la segunda carga..., pero eso debes preguntarlo en el foro de programación.
La parte de programación la tengo bastante clara, el problema es que si no consigo obtener los datos correctamente, no puedo hacer funcionar el resto, ya que, en esa programación, entre otras cosas, lo que hace es actualizar los campos importe y referidos del sponsor, entonces, si no tengo bien esos dos datos, todo lo demás no anda.
Cita:
Iniciado por jurena
Una breve explicación sobre la consulta. Se trata de dos consultas para traer lo obtenido por un usuario como usuario y como sponsor. Uno mediante UNION ALL desplazando a distinto campo(alias) los datos como usuario y como sponsor. Luego hago una subconsulta con esos datos y los de todos los usuarios (necesario el uso de LEFT),con la que me traigo los nombres, apellidos e id, luego controlo los nulos para las sumas con IFNULL, agrupo por el id (en una consulta el usuario y en la otra el sponsor) y muestro los datos...
Creo que entiendo todo excepto lo que se refiere a las sumas, que no sé lo que suma, pero aún así, no soy capaz de armar yo solo la consulta concreta para obtener lo que necesito, he estado intentando modificar la que me has pasado viendo la explicación, pero no hay forma, me da errores que no consigo resolver, en esto es en lo que he dejado la consulta y a continuación el error que me da:
Código MySQL:
Ver original usu2.id,
usu2.nombre,
usu2.apellidos,
usu2.codigo,
SELECT usu.id idusuario
, sim.importe usuario_importe
, sim.referidos usuario_referidos
)
SELECT usu.id_sponsor
, sim.importe sponsor_importe
, sim.referidos sponsor_referidos
Este es el error:
Cita: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM usuarios usu2 LEFT JOIN (( SELECT usu.id idusuario, sim.importe usu' at line 6
Y no consigo salir de ahí, no entiendo el error, por lo tanto no lo puedo corregir.
Si me pudieras echar un cable con lo que estoy haciendo mal, a ver si de una buena vez aprendo algo...
Muchas gracias de nuevo.
.