У меня есть эти таблицы в моем postresql: -
1. Оплата (id, номер, сумма)
2. Счет (id, номер, сумма)
и таблица invoice_payment для распределения суммы платежей по счетам
3. InvoicePayment (id, payment_id, invoice_id, сумма)
Единый платеж можно отнести ко многим счетам.
Теперь мне нужны детали платежа, но я также хочу invoices.number счетов, на которые этот платеж выделен. Я делаю что-то вроде этого: -
SELECT
payments.number,
payments.amount,
(SELECT invoices.number from invoices INNER JOIN invoice_payments
ON invoices.id = invoice_payments.invoice_id
WHERE invoice_payments.payment_id = payments.id)
from payments
Но это дает мне ошибку более чем в одной строке, возвращенной подзапросом. Как сделать так, чтобы номер счета-фактуры был разделен запятыми для каждой строки платежей?
Пример данных: -
Payment
id number amount
1 "Pay001" 100
2 "Pay002" 150
3 "Pay003" 150
Invoice
id number amount
1 "INV001" 100
2 "INV002" 200
3 "INV003" 100
InvoicePayment
id payment_id invoice_id amount
1 1 1 50
2 1 2 50
3 2 2 150
4 3 1 50
5 3 3 100
Result:-
payment_id payment_number amount invoices
1 "Pay001" 100 "INV001, INV002"
2 "Pay002" 150 "INV002"
3 "Pay003" 150 "INV001, INV002"