この方法で構築された2つのテーブルがあります:
Trips
- id
- organization_id REQUIRED
- collaboration_organization_id OPTIONAL
...other useless fields...
Organizations
- id
- name REQUIRED
...other useless fields...
今、私はこのタイプのレポートを作成するように依頼されました:
組織ごとにすべての旅行の合計が必要です。collaboration_organization_id を持っている場合は 0.5 としてカウントする必要があるため、collaboration_organization_id の組織も +0.5 を取得することは明らかです。
したがって、organization_id と Collaboration_organization_id が設定された出張がある場合、その出張は両方の組織で 0.5 としてカウントされます。代わりに、organization_id のみが設定されている場合は、1 としてカウントされます。
今、私の質問は2つの部分で構成されています:
1.
問題をすべてSQLで「解決」することは良い考えですか?
私はコードでそれを解決する方法をすでに知っています。私の考えは現在、「すべての旅行 (これらの 3 つのフィールドのみ) を選択し、Ruby でカウントを開始する」ことです。私は ruby on rails を使用しているので、「いいえ、mysql でしか動作しないから」と言う正当な理由になる可能性があることを考慮してください。
2.
ポイント1がYESの場合、countは「投げて実行する」関数であるため、必要な場所で各トリップを0.5カウントする方法がわかりません