Join с подзапросом
Помогите составить запрос, который выводит список транзакций, превысившие определенный месячный лимит. Существует банковская система, где клиент может совершать транзакции и устанавливать лимит на свой аккаунт. Также клиент может сам устанавливать себе лимит, пример: 01.01.2023 клиент установил лимит в 1000руб. 02.01.2023 совершил транзакцию на 900руб, остаток лимита составляет 100руб, 03.01.2023 совершает транзакцию на 500руб, остаток лимита равен -400, соответственно лимит превышен(limit_exceed = true). 10.01.2023 клиент устанавливает лимит в 2000руб, остаток лимита = 1600, лимит не превышен. Попробовал решить задачу с помощью join'a с подзапросом и агрегирующей функцией, но не могу грамотно составить. Прошу помощи. Пример своей запроса и ERD прикладываю.
select
*
from
solva.transactions t
left join solva.limits l (
select
max(l.setting_date)
from
solva.limits l2
where
l2.setting_date <= t.date_time
group by
t.id,
l.id,
t.date_time,
t.account_from,
t.date_time) on
l.user_account = t.account_from
where
t.limit_exceeded = true
and t.account_from = l.user_account
and t.date_time between :startdate and :enddate;