phpbar.de logo

Mailinglisten-Archive

[php] Aufeinander folgende Zeilen gruppierung in MySQL-Abfrage

[php] Aufeinander folgende Zeilen gruppierung in MySQL-Abfrage

Arno Symann symann_(at)_kolping.de
Fri, 09 Feb 2001 17:46:18 +0100


Hallo André,

bezüglich der Schwierigkeit hast Du wohl recht, meine erste Frage war
das misslungene Ergebniss einer Unfähigkeit die Finger zu benutzen
(anstatt Strg+C dann doch eher Strg+Enter zu drücken) :-(((

Die Möglichkeit mit der Schleife wäre ok, doch wollte ich erstmal
versuchen die Aufgabe an den MySQL-Server zu geben, um
Performance-Probleme von vorherein zu umschiffen.
Ich plane eine Datenbank mit 1000 Wohnungen. Für jede Wohnung möchte ich
in der besagten Tabelle die Kundennummer eintragen, als "ID" (bzw. für
jedes Haus fortlaufende Zahl) soll das Datum eingetragen werden und das
letzte Feld zeigt an, ob die Wohnung an dem Tag frei ist. Sprich
1000*366 Zeilen *2 für die Termine über 2 Jahre. Also ne Menge Daten.
Das grenze ich also erstmal auf die Datensätze ein, die gesucht werden
(z.B. 14 Tage), also 14 Zeilen die bearbeitet werden müssen. 
Wenn diese Wohnung nur 13 Tage frei ist, soll sie auf jeden Fall
angezeigt werden, wenn der eine fehlende Tag nicht gerade in der Mitte
liegt. Sonst könnte ich ja einfach gruppieren und schauen ob count(*)=14
anzeigt.

Eine andere Möglichkeit diese Relevanz zu testen fällt mir einfach nicht
ein, und ich weiß nicht, ob PHP das schaffen kann, da wir noch nicht
soviele Datensätze haben, sondern erst in einigen Wochen bekommen,
können wir das auch nicht so einfach testen.

Vielleicht fällt Dir ja spontan was anderes ein.

Danke schonmal
Arno

André Temme schrieb:
> 
> Arno Symann schrieb:
> >
> [...]
> > Ich möchte aber nur die aufeinanderfolgenden Zeilen gruppieren mit dem
> > Ergebniss
> >
> > 10      3
> > 20      2
> > 10      3
> >
> > Ist sowas möglich, und wenn ja wie?
> > Habe bisher leider nichts gefunden.
> 
> Hi Arno,
> 
> das ist schon schwerer als deine erste Aufgabe ;-)
> 
> mach doch ein select über alle Spalten und durchlaufe das Ergebnis in
> einer Schleife. Bei gleichen Werten zählst du einen Counter hoch, bei
> Veränderung gibst du diesen aus und setzt ihn wieder auf Null.
> Damit solltest du bekommen, was du willst. Direkt mit MySQL sollte das
> nicht möglich sein.
> 
> Viele Grüße
> Andre Temme
> 
> --
> Andre Temme         http://www.psyc-o-media.de
> Mail:               mailto:a.temme_(at)_psyc-o-media.de
>


php::bar PHP Wiki   -   Listenarchive