rewrite income by client report SQL query to join as a single query instead of multiple

;
This commit is contained in:
johnnyq 2023-02-28 23:04:25 -05:00
parent 47dbd46bf3
commit 99dc294145
2 changed files with 21 additions and 16 deletions

View File

@ -11,8 +11,6 @@ if (isset($_GET['year'])) {
$sql_payment_years = mysqli_query($mysqli, "SELECT DISTINCT YEAR(payment_date) AS payment_year FROM payments WHERE company_id = $session_company_id UNION SELECT DISTINCT YEAR(revenue_date) AS payment_year FROM revenues WHERE company_id = $session_company_id ORDER BY payment_year DESC");
$sql_clients = mysqli_query($mysqli, "SELECT * FROM clients WHERE company_id = $session_company_id");
?>
<div class="card card-dark">
@ -37,6 +35,19 @@ $sql_clients = mysqli_query($mysqli, "SELECT * FROM clients WHERE company_id = $
</select>
</form>
<?php
$sql_clients = mysqli_query($mysqli, "SELECT c.client_id, c.client_name, SUM(p.payment_amount) AS amount_paid
FROM clients AS c
JOIN invoices AS i ON c.client_id = i.invoice_client_id
JOIN payments AS p ON i.invoice_id = p.payment_invoice_id
WHERE YEAR(p.payment_date) = $year
AND c.company_id = $session_company_id
GROUP BY c.client_id
HAVING amount_paid > 599
ORDER BY amount_paid DESC"
);
?>
<div class="table-responsive">
<table class="table table-striped">
<thead>
@ -50,23 +61,17 @@ $sql_clients = mysqli_query($mysqli, "SELECT * FROM clients WHERE company_id = $
while ($row = mysqli_fetch_array($sql_clients)) {
$client_id = intval($row['client_id']);
$client_name = htmlentities($row['client_name']);
$sql_amount_paid = mysqli_query($mysqli, "SELECT SUM(payment_amount) AS amount_paid FROM payments, invoices WHERE payment_invoice_id = invoice_id AND YEAR(payment_date) = $year AND invoice_client_id = $client_id");
$row = mysqli_fetch_array($sql_amount_paid);
$amount_paid = floatval($row['amount_paid']);
if ($amount_paid > 599) {
?>
?>
<tr>
<td><?php echo $client_name; ?></td>
<td class="text-right"><?php echo numfmt_format_currency($currency_format, $amount_paid, $session_company_currency); ?></td>
</tr>
<?php
}
<tr>
<td><?php echo $client_name; ?></td>
<td class="text-right"><?php echo numfmt_format_currency($currency_format, $amount_paid, $session_company_currency); ?></td>
</tr>
<?php
}
?>
</tbody>
</table>

View File

@ -54,7 +54,7 @@ $sql = mysqli_query($mysqli, "
?>
<tr>
<th>Total</th>
<th>Total Monthly Income</th>
<th class="text-right"><?php echo numfmt_format_currency($currency_format, $recurring_total, $session_company_currency); ?></th>
</tr>
</tbody>