PHP max() dátumhoz rendelése

PHP max() dátumhoz rendelése
2022-11-23T20:14:13+01:00
2022-11-24T07:21:02+01:00
2022-11-24T08:10:35+01:00
megasansz
Van egy SELECT lekérdezésem amivel leszűröm azokat az ügyfeleket akiknek az utolsó vásárlása ebben az évben volt (Aktív vevők) . Ez tökéletesen működik. De szeretnék egy másik lekérdezést is (Passzív vevők), amiben csak azok az ügyfelek szerepelnének, akiknek az utolsó vásárlása nem ebben az évben volt, hanem régebben.
A problémám az, hogy ezzel a max(megrendeles_datuma) AS utso szűréssel,  aki vásárolt idén (Aktív vevő) az vásárolhatott az előző években is, így ők is belekerülnek azok közé akik nem vásároltak idén, csak az előző évben valamelyikében (Passzív vevők). Tudtok valami megoldást erre?
Itt az Aktív vevők szűrésére a kód:
<?php include 'config.php'; // HELP // QUERY TO GET USER DATA $userData = $db->prepare( "SELECT Sum(sum1+sum2+sum3+sum4+sum5+sum6+sum7+sum8+sum9+sum10+sum11+sum12+sum13+sum14+sum15+sum16+sum17+sum18+sum19+sum20)AS DDD, COUNT(sum1)AS db, CONCAT(w_ugyfel.szamla_iranyitoszam,'&nbsp;',w_ugyfel.szamla_varos,'&nbsp;',w_ugyfel.szamla_cim,'&nbsp;',egyeb) AS cim, CONCAT(wa_ugyfel.elo,'&nbsp;',w_ugyfel.kapcsolattarto_telefon) AS telefon, max(megrendeles_datuma) AS utso, kapcsolattarto_email, ceg_id, kapcsolattarto, ceg_adoszam, szamla_cegnev, w_ugyfel.szamla_varos as szamlavaros FROM w_megrendelesek INNER JOIN w_ugyfel ON w_megrendelesek.ceg_id = w_ugyfel.id where kalkulacio='0' and megrendeles_datuma>='".date('Y')."-01-01' and kereskedo_neve='1' GROUP BY ceg_id ; "); $userData->execute(); ?>
Mutasd a teljes hozzászólást!
WHERE helyett HAVING kellene arra a MAX-ra valahogy így:
... GROUP BY ceg_id HAVING MAX(megrendeles_datuma) < ...
Ja, és így a megrendelés tábla irányából megfogott lekérdezés eredményéből simán kimaradnak az ügyfelek, akik még sosem vásároltak, pedig ha vannak ilyenek, akkor azok szerintem eléggé "passzívak".
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd