だから私はこのコードを持っています...
$remaining = $remaining + $row['total'];
これはforeachループにあります..
foreach($clientArrayInvoice as $key => $row)
その実行は、各レコードを通過し、合計をこの$remaining
変数に追加することです。レコードの合計の一部は正の数であり、一部は負の数です。正常に動作しているよう$remaining
ですが、レコードで終了した後に変数を表示する必要がありますそして、これを結果の1つとして取得しました...
-2.84217094304E-14
これはどこからともなく出てきました。すべての数学を合計すると、そうあるべきでは0
ないことがわかります-2.84217094304E-14
私は何を間違っていますか?
合計が得られるクエリは次のとおりです
select i.invoiceid as transactionid, i.date, i.total,
i.total - (select ifnull(sum(p.amount), 0) from payment p where p.invoice = i.invoiceid) as remainingbalance,
'invoice' as transaction_type
from invoice i inner join client c
on i.client = c.clientid
where i.isdeleted = 0 and i.client = " . $clientId . "
union
select p.paymentid as transactionid, p.date,(0 - p.amount) as total, p.invoice, 'payment' as transaction_type
from payment p inner join invoice i
on i.invoiceid = p.invoice
inner join paymenttype
on paymenttype.paymenttypeid = p.paymenttypeid
inner join client c
on c.clientid = i.client
where c.clientid = " . $clientId . "
and i.isdeleted = 0
order by date
ありがとう、そして私はその努力に感謝します。