私は次のdbスキーマを持っています(クエリに必要な各テーブルの列についてのみ言及しています):
bills
-------
id
amount (decimal)
collection_case_id
collection_case
------------------
id
payments
----------
id
bill_id
amount (decimal)
type (char(2)) - "CH" stands for check payment, field used for polymorphism
check_payments
---------------
payment_id
一連の収集ケースでは、小切手による支払いから得られる利息の合計を取得する必要があります。私は現在、収集ケース基準のセットのすべての請求書レコードを取得した後、メモリ内でこれらの計算を行っています。請求書ごとに、受け取った小切手の合計を単純に加算します。受け取った小切手の合計が請求額よりも大きい場合は、請求額を加算します。
たとえば、受信したクエリの合計は次のようになります(コレクションケース1および2):
select sum(payment.amount) as received
from bills bill
cross join payments payment inner join check_payments checkpayment
on
payment.id=checkpayment.payment_id
where payment.type='CH'
and payment.bill_id=bill.id
and (bill.collection_case_id in (1 , 2))