Я пытаюсь сделать какую-то функцию экспорта для кого-то, чтобы экспортировать его клиентов в CSV. Его вид работы, за исключением того, что я не получил желаемые результаты. Должник может иметь несколько подписчиков (abonnement). Если у него есть хотя бы одна подписка с датой окончания в будущем, она будет активным клиентом, если у нее нет ее неактивного клиента.Как получить активных клиентов? SQL Query
теперь у меня есть следующий запрос:
SELECT debiteur.bedrijf_naam, adres.straat, adres.huisnr,
adres.huisnr_toev, adres.postcode, adres.plaats FROM debiteur
LEFT JOIN adres ON adres.debiteur_id = debiteur.id
LEFT JOIN abonnement ON abonnement.debiteur_id = debiteur.id
LEFT JOIN abonnement_site_rubriek ON abonnement_site_rubriek.abonnement_id = abonnement.id
WHERE adres.adres_rol = 'post' AND
abonnement_site_rubriek.rubriek_id IN (872,899) AND
abonnement.datum_dienst_tot < DATE(NOW())
GROUP BY debiteur.id
С помощью этого запроса, если клиент имеет подписок со EndDate в прошлом, даже если он имеет подписку с будущим EndDate, он будет отображаться в неактивных клиентах.
colum datum_dienst_tot - дата окончания подписки.
Как я могу сделать запрос возвращать только неактивные клиенты, просматривая все подписки клиентов?
Кто мог бы указать мне в правильном направлении?
Спасибо большое!
как вы определяете будущую дату окончания? – DevelopmentIsMyPassion
Вы можете использовать DATE_SUB и DATE_ADD, чтобы переместить дату NOW() вперед и назад во времени, так что abonnement.datum_dienst_tot> DATE_SUB (NOW(), INTERVAL 7 DAY) означает активность за последние 7 дней, поэтому <= означает неактивную в за последние 7 дней – nrathaus
В будущем конце даты это дата больше, чем сегодня –