Mailinglisten-Archive |
Egon Schmid wrote: > > Nadja Senoucci wrote: [...] > > Ich möchte die Einträge mit Kundennummer zuerst > > ausgegeben haben und dann erst die ohne (kdnr==0) was ich > > mit dem mysql-Befehl "order by kdnr desc" realisiert habe. > > Nun möchte ich diese Einträge noch nach PLZ sortieren, was > > ich mit "order by kdnr desc,plz asc" probiert habe. Dieser > > Befehl sortiert die Einträge ohne Kundennummer (kdnr==0) > > auch prima, aber die mit (z.B. 20001,20002,20003...) > > natürlich nicht. Wie schaffe ich es nun, daß diese Einträge > > auch noch nach PLZ sortiert werden? > > Mach zwei Querys: eine nach kdnr = 0 und eine nach kdnr > 0. Wenn jeder > Kunde eine andere Nummer hat, dann kann nicht auch noch nach der PLZ > sortiert werden. Das funktioniert nur bei den Kundennummern die gleich > bleiben, als bei Kunden mit der Nummer 0. Ich hatte das mit den zwei Querys schon mal versucht, das brachte allerdings mein "Blättern" durcheinander (lese hierzu meine Mail "[php] Ausgabe optimieren...") > > Zweite Frage: Ich habe mit dem mysql-Befehl "group by" in > > diesem Zusammenhang experimentiert (group by kdnr). Von 25 > > Einträgen - die er mir hätte ausgeben sollen - hat er mir > > aber nur fünf ausgegeben, nämlich die vier mit kdnr und > > einen ohne kdnr (bzw. kdnr==0). So wie ich diesen Befehl > > verstanden habe sollte er mi doch die Einträge nach kdnr > > gruppiert ausgeben, oder nicht? > > Kommen die Kundennummern mehrfach vor? Wenn dem so ist, dann stimmt doch > Dein Ergebnis, wie man bei der Gruppe mit der Kundennummer = 0 sehen > kann. Vielleicht missverstehst Du den Begriff Kundennummer. Jeder Kunde > sollte eine eindeutige Kundennummer haben. In der Kundentabelle darf > eine Kundenummer nur einmal auftauchen. Ansonsten liegt ein > schwerwiegender Designfehler vor. Kundennummer==0 bedeutet einfach, daß der Kunde noch eine Kundennummer hat (oder aber kein Partner ist oder sein will) und die werden dann anders (gegenüber denen mit kdnr beachteiligt) gelistet. Die eigentlichen Kundennummern kommen dann nur einmal vor. Laut meinem Buch (SQL for Dummies) gibt der Befehl "group by kdnr" alle einträge nach kdnr gruppiert in aufsteigender Reihenfolge aus. Zumindest behauptet das Beispiel das und aus dem erklärendem Text ist das auch zu entnehmen, oder verstehe ich das alles nur total falsch?? Bye, Nadja
php::bar PHP Wiki - Listenarchive