У меня есть три столовых питания, расходы, пользователи! я хочу подсчитать пользователей
детали еды за месяц! я пытался во многих отношениях я застрял :(
Я пытался использовать group by user.id, но он возвращает общую стоимость всех пользователей.
такой же как общий расход! вывод расчетов совершенно неожиданный.
SELECT u.name ,
((SUM(tot_expenseamount)/ SUM(tot_noofmeal))*tot_noofmeal) as total_Cost,
IFNULL(t.tot_expenseamount,0) AS tot_expense_amount ,
IFNULL(n.tot_noofmeal,0) AS tot_no_of_meal
FROM users u
LEFT JOIN (
SELECT e.user_id , SUM(e.expenseamount) AS tot_expenseamount
FROM expenses e
WHERE e.expensedate >= '2019-04-01' + INTERVAL 0 MONTH AND e.expensedate < '2019-04-01' + INTERVAL 1 MONTH
GROUP BY e.user_id ) t ON t.user_id = u.id
LEFT JOIN (
SELECT m.user_id , SUM(m.noofmeal) AS tot_noofmeal
FROM meals m
WHERE m.mealdate >= '2019-04-01' + INTERVAL 0 MONTH AND m.mealdate < '2019-04-01' + INTERVAL 1 MONTH
GROUP BY m.user_id ) n ON n.user_id = u.id
GROUPBY u.name
ORDER BY u.name
Я ожидал, что общая стоимость для пользователя !!
общая стоимость = норма питания * общее количество еды пользователя;
норма приема пищи = сумма общих расходов / сумма всего потребления пользователем
пример: у меня три пользователя x, y, z, их апрель месяц всего
10,20,30 и расходы 2000,1000,3000
теперь общие расходы = 6000 (2000 + 1000 + 3000) всего еды = 60 (10 + 20 + 30) еды
ставка = (6000/60) = 100,00
* X 1014 * для пользователя общая стоимость будет разрешена для x, общая стоимость = 10 * 100 = 1000 / =
обеденный стол
таблица пользователей
таблица расходов
ожидаемый результат