У меня есть отчет, который имеет столбец profit
. Мне нужно добавить все значения столбца прибыли и получить общую прибыль за день. Цените любую помощь, так как я прошел через SO и не нашел для этого решения.Рассчитать СУММУ прибыли в FPDF
$result = mysqli_query($connection, "SELECT S.sales_id, I.item_name, ST.stock_code,
S.date, S.unit_price, SUM(S.qty), (SUM(S.qty)*S.unit_price),
((SUM(S.qty)*S.unit_price)-(SUM(S.qty)*P.unit_cost)) FROM sales S
INNER JOIN items I ON S.item_id=I.item_id
INNER JOIN stock ST ON S.stock_id=ST.stock_id
INNER JOIN purchase_items P ON S.purchase_id=P.purchase_id
WHERE S.date BETWEEN '$date 00:00:00' AND '$date 23:59:59' GROUP BY S.item_id");
$qty = $row['SUM(S.qty)'];
$unit_price = $row['unit_price'];
$amount = $row['(SUM(S.qty)*S.unit_price)'];
$profit = $row['((SUM(S.qty)*S.unit_price)-(SUM(S.qty)*P.unit_cost))'];
$dailyProfit = $row['(SUM(SUM(S.qty)*S.unit_price)-(SUM(S.qty)*P.unit_cost)))'];
$pdf->Cell(25,10,$dailyProfit,'B',0,'J',1);
Это возвращает только одну запись с последним элемента, в profit
, как это должно быть исправлено, чтобы получить суточную sum(profit)
?
Обновленный код
$result = mysqli_query($connection, "SELECT S.sales_id, I.item_name, ST.stock_code, S.date,
S.unit_price, SUM(S.qty) AS line_qty, (SUM(S.qty)*S.unit_price) AS line_total,
((SUM(S.qty)*S.unit_price)-(SUM(S.qty)*P.unit_cost)) AS line_profit
FROM sales S
INNER JOIN items I ON S.item_id=I.item_id
INNER JOIN stock ST ON S.stock_id=ST.stock_id
INNER JOIN purchase_items P ON S.purchase_id=P.purchase_id
WHERE S.date BETWEEN '$date 00:00:00' AND '$date 23:59:59' GROUP BY S.item_id");
$qty = $row['line_qty'];
$unit_price = $row['unit_price'];
$amount = $row['line_total'];
$profit = $row['line_profit'];
$aRows = array();
while ($oRow = mysqli_fetch_assoc($result)) $aRows[] = $oRow;
mysqli_free_result($result);
$dTotalProfit = 0;
if (count($aRows) > 0) foreach ($aRows as $aRow) {
$dTotalProfit += $aRow['line_profit'];
//$pdf->Cell(25, 10, $aRow['line_qty'], 'B', 0, 'J', 1);
}
$totalProfit = number_format($dTotalProfit, 2);
$pdf->Cell(220, 10, 'Daily Total Profit:', 'B', 0, 'R', 1);
$pdf->Cell(25, 10, $totalProfit, 'B', 0, 'J', 1);
И ваш код, который показывает нам, что вы пробовали до сих пор? – Kitson88
Ах, извините, мой плохой ... можно увидеть сейчас. – Kitson88
Я думаю, что вы делаете group by item_id, так что вы получите результат одной записи на основе этого конкретного элемента, поэтому я думаю, вам следует использовать array_sum() после этого, чтобы вычислить прибыль за весь день – jilesh