Итак, у меня есть этот запрос, и я не могу понять, как изменить поведение. По сути, он должен возвращать набор результатов из таблицы приложений, с общей суммой платежей из таблицы платежей с соответствующим идентификатором, и с общей суммой сборов из таблицы сборов с соответствующим идентификатором. Это прекрасно работает, когда есть один платеж за одну плату. Однако в тех случаях, когда взимается 2 комиссии, платежи, по-видимому, удваиваются. Я бы предположил, что если бы было 3 платы, это было бы втрое и т. Д.
Я пытался использовать сумму (разные платежи. Сумма) в качестве платежей, но проблема в том, что вполне вероятно, что будет 2 платежа на одну и ту же сумму. Я не уверен, что это возможно, сделайте сумму, где есть определенный идентификатор, соответствующий количеству ... Я все еще изучаю SQL.
select applications.*,
permits.title as permit,
sum(payments.amount) as payments,
sum(fees.unitprice) as fees
from applications
left join permits on applications.permitid=permits.id
left join payments on payments.appid=applications.id
left join fees on fees.appid=applications.id
where applications.deleted=0
and payments.deleted=0
and fees.deleted=0
and fees.unitPrice > 0
and applicationdate between '1975-1-1' and '2011-2-10'
group by applications.id
order by permits.deptid,permits.title,status,dateissued,applicationdate
Буду признателен за любую помощь - я пытался исправить это в течение нескольких часов! Взял у меня несколько, чтобы просто выяснить, что было причиной.