Делаю вывод сумм по месяцам:
$OReqSQL = mysql_query("SELECT LPAD(YEAR(MIN(`datesort`)),4,'0'),LPAD(MONTH(MIN(`datesort`)),2,'0'),MONTHNAME(MIN(`datesort`)) FROM dfort_finance_client WHERE contract = '$id_contract'GROUP BY MONTH(datesort) ORDER BY dfort_finance_client . datesort ASC");
while ($Req = mysql_fetch_array($OReqSQL)) {
$PayDohodSQL = mysql_query("SELECT SUM(summ) FROM dfort_finance_client WHERE contract = '$id_contract' AND datesort BETWEEN '".$Req[0]."-".$Req[1]."-01' AND '".$Req[0]."-".$Req[1]."-31' AND type_pay = '1' ORDER BY id DESC");
$PayDohodPoFO = mysql_result($PayDohodSQL, 0);
$PayRashodSQL = mysql_query("SELECT SUM(summ) FROM dfort_finance_client WHERE contract = '$id_contract' AND datesort BETWEEN '".$Req[0]."-".$Req[1]."-01' AND '".$Req[0]."-".$Req[1]."-31' AND type_pay = '2' ORDER BY id DESC");
$PayRashodPoFO = mysql_result($PayRashodSQL, 0);
$SaldoPoFO = $PayDohodPoFO - $PayRashodPoFO;
echo $SaldoPoFO;
}
Как мне теперь сделать вывод сумм по нарастающей? Т.е. если Январь: 100, Февраль: 50, Март: 120, то должно выводить в другой таблице: Январь: 100, Февраль: 150, Март: 270.
Ваша задача решается одним SQL-запросом:
SELECT A.*, @s:=@s+dohod-rashod Saldo
FROM (
SELECT LPAD(YEAR(MIN(`datesort`)),4,'0') Y, LPAD(MONTH(MIN(`datesort`)),2,'0') M,
MONTHNAME(MIN(`datesort`)) MName,
MIN(datesort) datesort,
SUM( IF(type_pay=1,summ,0) ) dohod, SUM( IF(type_pay=2,summ,0) ) rashod
FROM dfort_finance_client
WHERE contract = $id_contract
GROUP BY MONTH(datesort)
) A, (select @s:=0) B
ORDER BY datesort
Хотя, конечно, можно и не делать внешний уровень запроса, считающий нарастающий итог, а посчитать его в PHP:
var $Saldo=0;
while ($Req = mysql_fetch_array($OReqSQL)) {
$Saldo=$Saldo+$Req['dohod']-$Req['rashod'];
echo ...
}
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости