我正在尝试为某人制作某种导出功能,将其客户端导出为CSV。 它有点工作,除了我没有得到希望的结果。债务人可以有多个订阅(abonnement)。如果他将来至少有一个订阅结束日期,那么如果它没有非活跃客户,那么它就是一个活跃的客户。
我现在有以下查询:
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是订阅结束日期。
如何通过查看所有客户订阅来使查询仅返回非活动客户?
谁能指出我正确的方向?
非常感谢!
答案 0 :(得分:0)
给定的查询将带来他们的订阅已经结束的人,你宁愿检查abonnement.datum_dienst_tot是否比今天更大:
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