Есть таблица, в которой записываются данные оплаты по счетам. Я использую SUM для подсчета общей суммы платежа по счету. Я только хочу показать счета, которые не были оплачены. Поэтому я создал предложение WHERE, используя GROUP BY и HAVING, чтобы показывать только те записи, у которых сумма записей меньше общей суммы счета-фактуры.
Но ... Если в таблице платежей нет записей, которые можно найти , система не может найти счета для отображения. У кого-нибудь еще была эта проблема? Я открыт для перехода на другой формат, но мне нужно, чтобы он функционировал таким же образом, когда он находит только счета с суммами платежей меньше общей суммы счета, подлежащей оплате ИЛИ вообще никаких платежей.
$query = "
SELECT o.id, o.user_id,o.invoice_number,o.total,SUM(p.payment_amount) as paid
FROM User_Order_Details as o
LEFT JOIN User_Payments as p ON (p.user_id = o.user_id AND p.order_id = o.id)
WHERE o.user_id = '1' AND o.invoice_number != ''
GROUP BY p.order_id
HAVING SUM(p.payment_amount) < o.total
ORDER BY o.ship_date DESC
");