1
我有兩個表: 1)其中一個用於發票,有成千上萬的數據。在我的INVOICES表中,有發票和它們的價格給顧客。 2)另一個是債務。在我的DEBTS表中,每個客戶都有發票的全部債務。
我的目標是找到最近的款項和債務的發票。舉例來說,我有表:如何在oracle中找到最接近的子集總和
債項表:
CUSTOMER_ID TOTAL_DEBTS
3326660 444$
2789514 165$
4931541 121$
發票表:
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
,因爲我的桌子上有數以千計的數據,對我來說性能非常重要。我發現從代碼覆蓋: closest subset sum
但是,性能低。當我在calculeted_amount和total_debts之間找到相同的值時,我必須停止加法循環。
謝謝你的幫助。
這不適合SQL的問題。您需要概括所有可能的組合並查看哪一個最接近。 –
同意@GordonLinoff,閱讀它,它可以幫助你理解你對[wiki]的問題(https://en.wikipedia.org/wiki/Subset_sum_problem) – Seyran