次のようなレポートを作成する必要があります。
エージェント、販売、支払いの3つのテーブルがあります。販売と支払いは、エージェントテーブルを介してリンクされています。レポートには、エージェントごとの1日あたりの合計1日あたりの売上が表示されます。また、エージェントが行った支払いを毎日表示する必要があります。これは、エージェントがビジネスに債務を負っているのか、またはその逆であるかをいつでも判断できるように、総売上残高から差し引かれます。
私がこれに取り組むことを計画している方法は次のとおりです。
- 1日あたりのエージェントごとのすべての売上を取得します(1つのクエリ)
- 1日あたりのエージェントごとのすべての支払いを取得します(1つのクエリ)
- 各セールス、エージェント、および毎日のチェック(エージェントごとの1日あたりのエージェントの支払い)(ループ)
- 一致するものが見つかった場合は、値を取得し、累積合計で計算に使用します
- それ以外の場合は、累積合計のみで適切な販売データを表示します。
私の生活を少し楽にすることができるクエリがあるかどうかはわかりません。ありがとう。
[編集]
エージェントテーブル: id、name、opening_balance
販売テーブル: id、agent_id、amount、customer_id、sale_date
支払いテーブル: id、agent_id、amount、bank_id、payment_date、status
[2回目の編集]
OlafDietscheに感謝します。副選択のない2番目のクエリは、実行に長い時間がかかりました。約88秒。また、サブセレクトで最初に試してみたところ、あっという間に完了しましたが、sum(s.amount)とsum(p.amount)は本来の2倍の値を保持しています。
[3回目の編集]
エージェントは複数の販売を行うことができ、エージェントは複数の支払いを行うことができます
販売と支払いの間に直接の関係はありません