我有一個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'的值將幫助您 –