2017-01-04 17 views
0

私はorderテーブルを持っています。この表の列の1つが合計価格です。エリクサーでのクエリ結果の合計はどのようにして計算できますか?

Total priceは、ユーザがorder_itemを削除すると、すべてのorder_itemの価格とitem_attribute

を加算して算出され、私はそれがorder_itemに関連item_attributeのすべてを削除したいです。だから総額を計算すると、それはorder_itemitem_attributeの価格を差し引くべきです。

だから私は、削除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_idに関連するorder_itemitem_attributeの合計金額の合計を選択します。そして、その値をOrderデータベースに入力します。

ただし、(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'の値を表示すると便利です –

答えて

関連する問題