У меня проблемы с вычислением запроса для транзакций и отношений.
Итак, у меня есть документы таблица: (id, name, total_value, id_partner)
и отношения таблица: (id_parent, id_child, value).
документы таблица хранит транзакции и счета
Отношения В таблице хранятся отношения между транзакциями и счетами
транзакция может оплатить несколько счетов.
Что я получил до сих пор:
SELECT DCS.ID,
DCS.ID_PARTNER,
DCS.TOTAL_VALUE,
COALESCE(ASDR.[PAID], 0) [PAID_VALUE],
(DCS.TOTAL_VALUE - COALESCE(ASDR.[PAID], 0)) [UNPAID_VALUE]
FROM DOCUMENTS DCS
LEFT JOIN (SELECT SDR.ID_PARENT, SUM(SDR.VALUE) [PAID] FROM RELATIONS SDR GROUP BY SDR.ID_PARENT) ASDR ON (DCS.ID = ASDR.ID_PARENT)
WHERE DCS.ID_PARTNER = 25
Мой запрос должен возвращать оплаченные счета по текущей транзакции и партнеру и неоплаченные счета для текущего партнера.
Если счет полностью оплачен другой транзакцией, он не должен отображаться в текущей транзакции.
Если счет частично оплачен другой транзакцией, он должен отображаться в текущей транзакции.
Также я должен вернуть всю оплаченную сумму по счету.
SQL Fiddle : http://sqlfiddle.com/#!18/76bce/2