У меня есть две таблицы и я соединяю их по customer_id.
Первая таблица - это сделка, и я храню там данные о сделке. И каждая сделка имеет объем и отдых, оплату и т. Д.
Вторая таблица - дескриптор, и мне сложно объяснить, для чего она предназначена, но таблица дескрипторов - это та же таблица сделок, в которой есть volume_handle, rest_handle, pay_handle и т. Д.
Мне нужно использовать левое соединение, потому что я хочу, чтобы все записи в таблице сделок и соответствующие записи из таблицы дескрипторов
Я хочу суммировать объем и сумму остатка от сделки, а также сумму volume_handle из дескриптора, а отношения между этими таблицами - customer_id и buy_id.
например таблица сделок:
id = 1
volume = 1000
rest = 1000
customer_id = 1
---------------
id = 2
volume = 500
rest = 0
customer_id = 1
---------------
id = 3
volume = 2000
rest = 0
customer_id = 2
и таблица ручек:
id = 1
volume_handle = 3000
buy_id = 1
запрос, который я пишу:
select sum(deal.rest) as rest , sum(deal.volume) as volume , sum(handle.volume_handle) as handle
from deal
left join handle on deal.customer_id = handle.buy_id
group by deal.customer_id;
и результат этого запроса:
//when customer_id is 1
volume = 1500
rest = 1000
handle = 6000
//when customer_id is 2
volume = 2000
rest = 0
handle = null
объем и остальное правильные, но дескриптор из второй таблицы неправильный, потому что результат sum (handle.volume_handle) равен 3000, а не 6000 (когда customer_id равен 1)
и я не знаю, как использовать агрегатные функции до объединения таблиц.
кто-нибудь здесь может написать запрос для этой проблемы?