Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/01/2014, 11:29
joselegolas
 
Fecha de Ingreso: marzo-2013
Mensajes: 83
Antigüedad: 12 años, 1 mes
Puntos: 0
Doble acumulado

Hola a todos,

Quiero obtener de una tabla las etiquetas puestas y las retiradas por cada usuario (realizado con éxito), el problema viene cuando quiero hacer un acumulado de las etiquetas que se están poniendo, con lo cual la query siguiente no está bien, ¿qué debo hacer?



Código MySQL:
Ver original
  1. SET @Acumulado=0;
  2.         CONCAT(U.Nombre,' ',U.PrimerApellido) Persona,
  3.         SUM(IF(E.id_Usuario_coloca=U.id_Usuario, 1, 0)) Puestas,
  4.        @Acumulado:=SUM(1)+@Acumulado 'Acumulado puestas',
  5.         SUM(IF(E.id_Usuario_retira=U.id_Usuario, 1, 0)) Retiradas,
  6.         SUM(IF(U.id_Usuario = E.id_Usuario_coloca AND U.id_Usuario = E.id_Usuario_retira, 2, 1)) Total
  7.     FROM etiquetas E
  8.     LEFT JOIN Usuarios U ON U.id_Usuario=E.id_Usuario_coloca or U.id_Usuario=E.id_Usuario_retira
  9.     LEFT JOIN nivel4 N4 ON E.id_N4 = N4.id_N4
  10.     LEFT JOIN nivel3 N3 ON N4.id_N3=N3.id_N3 OR E.Id_N3=N3.id_N3
  11.     LEFT JOIN nivel2 N2 ON N3.id_N2=N2.id_N2 OR E.Id_N2=N2.id_N2
  12.     LEFT JOIN nivel1 N1 ON N2.id_N1=N1.id_N1 OR E.Id_N1=N1.id_N1
  13.     WHERE E.Fecha_registro IS NOT NULL
  14.     GROUP BY Persona
  15.     ORDER BY Total DESC

Además necesito que el orden de salida sea:
Total DESC --> el acumulado se vaya creando a partir de este orden