1
Ectoを使用しているElixir/Phoenixで実行している一連の複雑なクエリがあります。これらの目的は、新しいエントリの作成と前の行の更新の両方でこれらのクエリを機能させることです。これを実行するには、テーブルを更新するかどうかを定義する関数パラメータを使用することを想定します。Elixir Ecto関数のパラメータに基づくクエリの変更
defp get_chargebacks(%{user_id: user_id} = map, is_update \\ false)
そしてis_update = true
場合は、その後、私は追加したい:
# Retrieves the stats on the user chargebacks
defp get_chargebacks(%{user_id: user_id} = map) do
query =
from u in Users,
left_join: c in ChargeBacks, on: [user_id: u.id],
where: u.id == ^user_id,
select: %{chargeback_amount_cents: sum(c.amount), chargeback_amount_count: count(c.user_id), chargeback_amount_currency: @default_currency},
group_by: u.id
result = query
|> RepoBVCore.one
Map.merge(map, Map.put(result, :chargeback_amount_cents, Map.get(result, :chargeback_amount_cents) || 0))
end
が、私はそれは次のようになるように機能を変更したい:例えば、今の私には、以下の機能を持っています機能(例えば)に追加where
句:
where: c.amount > 100
どのように私は条件付きでクエリステートメントを変更することが私のオリジナル機能を変化させることができますか?ありがとう。
すごく、ありがとう! – user2694306