2015-11-05 28 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