我有一个order
表。这张表的其中一列是总价。如何计算Elixir中查询结果的总和?
Total price
是当用户删除的order_item
加起来和order_item
所有价格item_attribute
计算,我希望把它删除所有相关item_attribute
到order_item
。因此,在计算总价格时,应扣除order_item
和item_attribute
的价格。
所以这样做,我做了这样的代码下面
order_item_total = Repo.one!(from p in Pos8.OrderItem, where: p.order_id == ^order_id, select: sum(p.item_total))
total_item_attributes_price = Repo.one!(from p in Pos8.ItemAttribute, where: p.order_id == ^order_id, select: sum(p.price))
order_total_query = (order_item_total + total_item_attributes_price)
Pos8.Order.changeset(order, %{total: order_total_query})
|> Repo.insert_or_update
删除order_item
和item_attribute
之后,它选择的order_item
和item_attribute
总价,这都与order_id
的总和。然后将其值输入到订单数据库。
但是,它触发了(ArithmeticError) bad argument in arithmetic expression
。这表明order_total_query = (order_item_total + total_item_attributes_price)
在算术表达式中不是有效参数...
如何计算order_total_query
的正确算术表达式?
在此先感谢。
打印'order_item_total'和'total_item_attributes_price'的值将帮助您 –