Вот мой sqlFiddle - http://sqlfiddle.com/#!9/a6ed6a/3
У меня есть журнал с информацией о продуктах, калориях, дате и граммах белка, жиров и углеводов.
Я пытаюсь рассчитать процент углеводов, белков и жиров, потребляемых каждый день в течение 3 дней подряд для каждого пользователя.
Я получаю данные с помощью этого запроса:
SELECT foodName, calories, carbs, fat, protein, logDate
FROM Students
LEFT JOIN FoodLog
ON Students.id=FoodLog.studentID
WHERE FoodLog.studentID != ''
AND logDate >= '2019-02-03' AND logDate <= '2019-02-05'
ORDER BY 'FoodLog'.'logDate' ASC
Однако, когда я пытаюсь получить данные с процентом, я получаю только один продукт, как показано в следующем запросе:
SELECT foodName, calories, carbs, fat, protein, logDate,
((SUM(carbs)*4)/SUM(calories))*100 AS percentCarbs
FROM Students
LEFT JOIN FoodLog
ON Students.id=FoodLog.studentID
WHERE FoodLog.studentID != ''
AND logDate >= '2019-02-03' AND logDate <= '2019-02-05'
ORDER BY 'FoodLog'.'logDate' ASC
Любая помощь будет высоко ценится!
Спасибо,
Тим
Я полагаю, что вы просто скучаете по группе
SELECT foodName, calories, carbs, fat, protein, logDate,
((SUM(carbs)*4)/SUM(calories))*100 AS percentCarbs
FROM Students
LEFT JOIN FoodLog
ON Students.id=FoodLog.studentID
WHERE FoodLog.studentID != ''
AND logDate >= '2019-02-03' AND logDate <= '2019-02-05'
GROUP BY FoodLog.studentID, logDate
ORDER BY 'FoodLog'.'logDate' ASC
Group By
наfoodName
. Это даст вам пищевое распределение данных.