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