У меня есть система онлайн-продаж, которую я разрабатываю, и я работаю над системой оплаты счетов.
У меня есть общая сумма заказа, записанная в таблице базы данных вместе с самим заказом.
Пример: “SELECT total FROM Orders WHERE id = ‘1’”
Затем у меня есть еще одна таблица, которая включает отдельную запись для каждой финансовой транзакции (чек, копия и т. Д.)
Пример: “SELECT payment_amount FROM Payments WHERE order_id = ‘1’”
То, что я хотел бы сделать, это объединить эти два вместе при составлении некоторого отчета о том, какие заказы не были оплачены полностью, и получить остаток каждого заказа.Я хотел бы сделать это с помощью одного запроса, если это возможно ...
Это было то, что я пытался ...
“SELECT o.id as order_id, o.total, (SELECT p.payment_amount FROM Payments as p WHERE o.order_id = o.id) as amount_paid_plus FROM Orders as o”
Это прекрасно работает, если естьтолько 1 запись в платежах ... но если их два, я получаю эту ошибку
Подзапрос возвращает более 1 строки
Я хочу платежирезультаты таблицы должны быть объединены в единую сумму и возвращены как одна переменная в запросе
Мне также нужен запрос, чтобы по-прежнему возвращать информацию, даже если в таблице платежей нет платежей.Будет отображаться сумма, выплаченная как 0.