2017-01-04 79 views
0

我有一個order表。這張表的其中一列是總價。如何計算Elixir中查詢結果的總和?

Total price是當用戶刪除的order_item加起來和order_item所有價格item_attribute

計算,我希望把它刪除所有相關item_attributeorder_item。因此,在計算總價格時,應扣除order_itemitem_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_itemitem_attribute之後,它選擇的order_itemitem_attribute總價,這都與order_id的總和。然後將其值輸入到訂單數據庫。

但是,它觸發了(ArithmeticError) bad argument in arithmetic expression。這表明order_total_query = (order_item_total + total_item_attributes_price)在算術表達式中不是有效參數...

如何計算order_total_query的正確算術表達式?

在此先感謝。

+0

打印'order_item_total'和'total_item_attributes_price'的值將幫助您 –

回答