sql新手在这里,我卡住了一个问题。
我有一个配方配料表,基本上我想做的是找到一个配方的价格四舍五入到整个配料。
所以我写了这个sql。
select recipe_id_label, recipe_name, variation_name, portion_size, menu_id, variation_name,
sum (recipe_order_ingredient_quantity * ingredient_expected_cost)
from mb.weekly_menus_recipes_ingredients
where recipe_id_label = '30943'
and portion_size = '2'
group by recipe_id_label, recipe_name, variation_name, portion_size, menu_id, variation_name
这是有趣的部分。
sum (recipe_order_ingredient_quantity * ingredient_expected_cost)
这个sql得到了正确的答案,只要没有半成分。例如,如果你有0,25包胡萝卜,它将不会四舍五入到1包。
所以我试了这个。
sum (ingredient_planned_cost* ceiling (recipe_order_ingredient_quantity))
这也不管用。如果有两行有半个胡萝卜,那么sql将把每行加起来等于1个胡萝卜,这样它将计算两个整胡萝卜,而不是两个半胡萝卜(1)。
所以基本上我希望我的代码能够理解一半+一半是完整的,并且理解即使只使用四分之一也需要一个完整的。
2条答案
按热度按时间pokxtpni1#
这是你想要的吗
使用mysql编辑检查的语法
s4chpxco2#
如果我了解你的问题,你只需要使用
round
每个数量加0.5这将产生4