E-mail küldés egyedi kettős szűréssel

E-mail küldés egyedi kettős szűréssel
2007-02-18T18:37:52+01:00
2007-02-19T09:43:19+01:00
2022-11-03T10:41:52+01:00
*deleted_42098963
Sziasztok!

Adott 2 tábla: Megrendelok, Megrendelesek
Struktúra:
Megrendelok : Megrendelo_Azon, Megrendelo_Nev, Megrendelo_Cim, Megrendelo_Mailcim
Megrendelesek : Megrendeles_Azon, Megrendelo_Azon, Megrendelt_Tetel, Megrendeles_Datuma

Ki szeretném gyűjteni azokat a megrendelőket, akiknek meg van adva az e-mail címük, és ezen belül
azokat, akiknek a megrendelése 2 héten belül van.
Ez megy is:
SELECT * FROM Megrendelok LEFT JOIN Megrendelesek ON Megrendelok.Megrendelo_Azon = Megrendelesek.Megrendelo_Azon WHERE (Megrendelo_Mailcim <> '-') AND (Megrendeles_Datuma <= :Datum); ParamByName('Datum').AsDate := Now-14;
Nos eddig oké. Meg is csinálja, amit kértem, de tegyük fel a Kiss Bélának 100 megrendelt terméke van, amit 2 héten belül rendelt, és ezért 100-szor fogja kilistázni az e-mail címét is. (ez azért baj, mert e-mail szeretnék küldetni a programmal az ügyfélnek, hogy milyen termékeket rendelt 2 héten belül, és ezt nem jó, ha 100x elküldi.)

Ui.: Az e-mail küldés működni fog már azután, hogy kigyűjtöttük az egyedi e-mail címeket (for-ral végigmegyek a rekordokon, és kigyűjtöm az e-mail címeket), de jelenleg nagyon sok azonos e-mail címem van...

Remélem érthető a problémám?
Segítsetek!

Firebird 1.5.3
Delphi 7
Mutasd a teljes hozzászólást!
Nem lesz olyan, mert az egyedi email-nev-telefon hármas csoportokat képez:
Az baj, ha egy emailhez több fazon tartozik
Ilyenkon jön jól az aggregálás:
SELECT email, MAX(nev), MAX(telefon) FROM ... GROUP BY email
vagy átmegy subselectbe a lekérdezés
SELECT email, nev FROM megrendelok WHERE email <> '-' AND megrendelo_azon IN (SELECT megrendelo_azon FROM megrendelesek WHERE rendeles_datum < :date)
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