2015-11-05 30 views
1

嗨,夥計們我一直在編碼,並且不能很好地解決這個問題... 樣本: 從BILLING表中有兩張賬單,一月1,500和二月2,000 從付款表中,客戶支付了2,000,這個數額應該從1月份的賬單中扣除,因爲2000年的賬單數額大於1月的數額,所以應該自動扣除500美元到2月份的下一個賬單。 表用PHP SQL扣除賬單的金額

OUT PUT

AMOUNT PAID - 2,000 

| MONTH  | BILL | AMT PAID | BALANCE | 
------------------------------------------------------- 
| January | 1,500 | 2,000  |  -500 | 
| February | 2,000 |  500  | 1,500 | 

QUERY

SQL BILLING 
| MONTH | BILL | 
| JAN | 1500 | 
| FEB | 2000 | 
$query = SELECT MONTH, BILL FROM billing 
$amt_paid = 2000; 
foreach($query as $row){ 
    $actual_paid = $amt_paid; 
    $actual_bal -= $actual_paid; 
    echo '<tr>'; 
    echo '<td>'.$row->MONTH.'</td>'; 
    echo '<td>'.$row->BILL.'</td>'; 
    echo '<td>'.$actual_paid.'</td>'; 
    echo '<td>'.$actual_bal.'</td>'; 
} 

WRONG RESULT 
| MONTH  | BILL | AMT PAID | BALANCE | 
------------------------------------------------------- 
| January | 1,500 | 2,000  |  -500 | 
| February | 2,000 | 2,000  |  0 | 

我想說明一個確切的量和平衡。 請大家幫忙,我希望你能猜出我的意思是說:d

+0

是代碼查詢塊實際?或者它是一個模擬? - 另外,向我們展示您嘗試過的內容,除了顯示數據之外,您的當前代碼並沒有真正顯示出來。 – Epodax

+0

模擬我猜,2000應分配到每一行,直到它變爲零。 –

回答

0

- 你應該有monthIndex或日期時間在表

select t0.MONTHNAME, t0.bill, t0.pay, (select sum(bill - pay) from billing t1 where t1.MONTHINDEX <= t0.MONTHINDEX) bal 
from billing t0