Tema: SQL avanzado
Ver Mensaje Individual
  #3 (permalink)  
Antiguo 17/12/2008, 04:11
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: SQL avanzado

Tienes un problema si esa tabla no tiene un identificador propio, un idtabla numérico y distinto para cada ingestión.
Si lo tienes, puedes hacerlo así:
Código sql:
Ver original
  1. SELECT tabla.iduser, SUM( tabla.gramos )
  2. FROM tabla
  3. INNER JOIN (
  4.  
  5. SELECT idtabla, iduser, comida
  6. FROM tabla
  7. WHERE iduser =1
  8. AND fecha_datos >DATE_ADD(CURDATE(), INTERVAL - 8 DAY)
  9.  
  10. GROUP BY comida, fecha_datos
  11. )t1 ON t1.idtabla = tabla.idtabla
  12. GROUP BY tabla.iduser


esto te sacará los gramos de la primera ingestión que se repita; es decir que si hace dos comidas, sumará los datos de la primera, e igual con desayuno y cena. Podrías sacar también los datos teniendo en cuenta la mayor cantidad o menor cantidad de gramos por ingestión.

Ahora bien, si no tienes ese id propio de cada ingestión, te resultará difícil, pues tanto la fecha como el iduser, como la comida o los gramos pueden repetirse.

Última edición por jurena; 17/12/2008 a las 06:29