私はorder
テーブルを持っています。この表の列の1つが合計価格です。エリクサーでのクエリ結果の合計はどのようにして計算できますか?
Total price
は、ユーザがorder_item
を削除すると、すべてのorder_item
の価格とitem_attribute
を加算して算出され、私はそれがorder_item
に関連item_attribute
のすべてを削除したいです。だから総額を計算すると、それはorder_item
とitem_attribute
の価格を差し引くべきです。
だから私は、削除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_id
に関連するorder_item
とitem_attribute
の合計金額の合計を選択します。そして、その値をOrderデータベースに入力します。
ただし、(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'の値を表示すると便利です –