| 1 | -- ---------------------------------------------------------------------
|
|---|
| 2 | -- Користени queries
|
|---|
| 3 | -- ---------------------------------------------------------------------
|
|---|
| 4 |
|
|---|
| 5 | -- recipe.kcal_sum = SUM(kcal per 100g * gramsInRecipe / 100)
|
|---|
| 6 | UPDATE recipe r
|
|---|
| 7 | SET kcal_sum = ROUND(COALESCE((
|
|---|
| 8 | SELECT SUM(i.kcal * rci.ingredient_quantity / 100.0)
|
|---|
| 9 | FROM recipe_contains_ingredient rci
|
|---|
| 10 | JOIN ingredient i ON i.name = rci.ingredient_name
|
|---|
| 11 | WHERE rci.recipe_id = r.id
|
|---|
| 12 | ), 0), 2);
|
|---|
| 13 |
|
|---|
| 14 | -- grocery_list.kcal = kcal bulk-added + kcal single-added
|
|---|
| 15 | UPDATE grocery_list g
|
|---|
| 16 | SET kcal = ROUND(
|
|---|
| 17 | COALESCE((SELECT SUM(r.kcal_sum)
|
|---|
| 18 | FROM grocery_list_bulk_add_ingredient b
|
|---|
| 19 | JOIN recipe r ON r.id = b.recipe_id
|
|---|
| 20 | WHERE b.list_id = g.id), 0)
|
|---|
| 21 | + COALESCE((SELECT SUM(i.kcal * s.buy_quantity / 100.0)
|
|---|
| 22 | FROM grocery_list_single_add_ingredient s
|
|---|
| 23 | JOIN ingredient i ON i.name = s.ingredient_name
|
|---|
| 24 | WHERE s.list_id = g.id), 0)
|
|---|
| 25 | , 2);
|
|---|
| 26 |
|
|---|
| 27 | -- intake_planner.kcal = Portion based
|
|---|
| 28 | UPDATE intake_planner ip
|
|---|
| 29 | SET kcal = ROUND((
|
|---|
| 30 | SELECT SUM(r.kcal_sum / r.servings) -- one portion per saved post
|
|---|
| 31 | FROM intake_planner_save_to_list_post sp
|
|---|
| 32 | JOIN post p ON p.id = sp.post_id
|
|---|
| 33 | JOIN recipe r ON r.id = p.recipe_id
|
|---|
| 34 | WHERE sp.planner_id = ip.id
|
|---|
| 35 | ), 2)
|
|---|
| 36 | WHERE EXISTS (SELECT 1
|
|---|
| 37 | FROM intake_planner_save_to_list_post sp
|
|---|
| 38 | JOIN post p ON p.id = sp.post_id
|
|---|
| 39 | WHERE sp.planner_id = ip.id AND p.recipe_id IS NOT NULL);
|
|---|