- 12, May 2024
- #1
Так что я предполагаю, что у меня что-то не так, и я просто этого не вижу.
Еще одна пара глаз была бы оценена по достоинству
Вот почему у вас есть сравнение дат начала и окончания. Все началось с объединений, но эта старая школьная табличная штука тоже должна работать.
Еще одна пара глаз была бы оценена по достоинству
SELECT
DISTINCT
Finance.`startdate`
,
(SELECT
COUNT(Fin.id)
FROM
finances AS Fin
, memberships AS Membership
WHERE Fin.membership_id = Membership.id
AND Membership.softdelete = 'N'
AND Membership.association_id = 4
AND Finance.startdate >= Fin.startdate
AND Finance.startdate <= Fin.enddate)
FROM
finances AS Finance
WHERE Finance.`startdate` < NOW()
ORDER BY Finance.startdate DESC
LIMIT 20
Код (разметка): Основной запрос просто обращается к таблице и получает список дат — первого числа каждого месяца.
Подзапрос берет этот месяц и пытается выяснить, сколько финансовых записей было «активно» в этом месяце — обычно финансовая запись активна в течение года, но это может отличаться.
Вот почему у вас есть сравнение дат начала и окончания. Все началось с объединений, но эта старая школьная табличная штука тоже должна работать.