私は2つのテーブルを持っています: 1)それらの1つは請求書用であり、何千ものデータがあります。私のINVOICESテーブルには、顧客に対する請求書とその価格があります。 2)もう1つは債務です。私のDEBTSテーブルには、すべての顧客に対する請求書の債務総額があります。
私の目標は、最も近い金額と債務の請求書を見つけることです。オラクルで最も近いサブセットの合計を見つける方法
DEBTSテーブル:
CUSTOMER_ID TOTAL_DEBTS
3326660 444$
2789514 165$
4931541 121$
INVOICESテーブル:
CUSTOMER_ID INVOICE_ID AMOUNT_OF_INVOICE
3326660 1a 157$
3326660 1b 112$
3326660 1c 10$
3326660 1d 94$
3326660 1e 47$
3326660 1f 35$
3326660 1g 14$
3326660 1h 132$
3326660 1i 8$
3326660 1j 60$
3326660 1k 42$
2789514 2a 86$
2789514 2b 81$
2789514 2c 99$
2789514 2d 61$
2789514 2e 16$
2789514 2f 83$
4931541 3a 11$
4931541 3b 14$
4931541 3c 17$
4931541 3d 121$
4931541 3e 35$
4931541 3f 29$
私のターゲット表がある:
CUSTOMER_ID TOTAL_DEBTS CALCULATED_AMOUNT INVOICES_ID
3326660 444$ 444$ 1a,1b,1f,1h,1i
2789514 165$ 164$ 2b,2f
4931541 121$ 121$ 3d
例えば、私はテーブルを持っています10
私のテーブルには何千ものデータがあるので、パフォーマンスは私にとって非常に重要です。私はstackoverflowからコードを見つける: closest subset sum
しかし、パフォーマンスは低いです。私は、calculeted_amountとtotal_debtsの間で同じ値を見つけると、追加ループを停止する必要があります。
ありがとうございました。
これはSQLにとって適切な問題ではありません。可能なすべての組み合わせを一般化し、どちらが最も近いかを確認する必要があります。 –
@GordonLinoffと合意して、これを読んで、[wiki](https://en.wikipedia.org/wiki/Subset_sum_problem)に関するあなたの質問が理解できるようになります。 – Seyran