Mailinglisten-Archive |
Hoi Alle, Ich hab jetzt ne Lösung, > > In der Veranstaltungsdatenbank kann mit jedem Datensatz maximal ein Tag > > beschrieben werden, das heisst wenn jetzt eine Veranstaltung 5 Tage > > dauert, hat sie auch 5 Datensätze. Angenommen diese Veranstaltung findet aber > > jetzt mehrmals im Jahr statt - sozusagen in mehreren Blöcken. > > Selecten will ich nun immer nur den Anfang und das Ende jedes Blockes - so > > dass ich als output dann: > > > row1 veranstaltung start > > row2 veranstaltung ende //Block 1 > > row3 veranstaltung start > > row4 veranstaltung ende //Block2 > > erhalte. > der Query ist zwar nicht grad der feinste, aber er geht: ------------------------------------ SELECT count(*) as anzahl, a.vdatumvon, a.vatitel FROM verkalender a LEFT JOIN verkalender b ON a.vnr = b.vnr WHERE ( dayofyear(a.vdatumvon) - dayofyear(b.vdatumvon) = 1 OR dayofyear(a.vdatumvon) - dayofyear(b.vdatumvon) = -1 ) GROUP BY a.vdatumvon HAVING anzahl = 1 ORDER BY a.vdatumvon ------------------------------------- tobi, hab ihn getestet - beim oktoberfest geht er, vielleicht mal ausprobieren wies bei ner Veranstaltung geht die öfters im Jahr vorkommt. Ausgabe z.b.: bei Oktoberfest: -> go +-----+----------------+------------------------+ | anzahl | vdatumvon | vatitel | +-----+----------------+------------------------+ | 1 | 20000928000000 | Oktoberfest in München | | 1 | 20001003000000 | Oktoberfest in München | +-----+----------------+------------------------+ 2 rows in set (0.02 sec) 2 Zeilen, die erste ist Anfang, die zweite Ende. bei mehreren Events im Jahr sollte immer abwechselnd anfang/ende kommen. n8 allerseits, martin
php::bar PHP Wiki - Listenarchive