source: sql/dml_nutritioneer_calculations_1_0.sql

Last change on this file was 2e0035f, checked in by Acko <lavurovski.a65@…>, 8 days ago

Initial Commit

  • Property mode set to 100644
File size: 1.5 KB
Line 
1-- ---------------------------------------------------------------------
2-- Користени queries
3-- ---------------------------------------------------------------------
4
5-- recipe.kcal_sum = SUM(kcal per 100g * gramsInRecipe / 100)
6UPDATE recipe r
7SET 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
15UPDATE grocery_list g
16SET 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
28UPDATE intake_planner ip
29SET 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)
36WHERE 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);
Note: See TracBrowser for help on using the repository browser.