EKKi: Hilfe beim Select...

Beitrag lesen

Mahlzeit nikoo,

In meiner DB gibt es folgende relevante Spalten:
Die erste lautet "kategorie", die zweite lautet "typ" und trägt, je nach Datensatz die Kennziffern 1,2,3 oder 4.
Die dritte lautet ort, die vierte lautet name.

Die Datensätze sind immer wie folgt verbunden:
Die 1. Zeile enthält die Kategoriebezeichnung und die Spalte "typ" die Kennziffer 1, nicht aber den Ort oder Namen
Die 2. Zeile enthält die Kategoriebezeichnung, die Spalte "typ" die Kennziffer 2 und die Spalte "ort" den Ort, nicht aber den Namen
Die 3. Zeile enthält die Kategoriebezeichnung, die Spalte "typ" die Kennziffer 3 und die Spalte "ort" den Ort, nicht aber den Namen
Die 4. Zeile enthält die Kategoriebezeichnung, die Spalte "typ" die Kennziffer 4, die Spalte "ort" den Ort und die Spalte "Name" den Namen.

OMG ... informiere Dich bitte *DRINGENDST* zum Thema "Normalisierung"!

Ich würde Dir ungefähr folgende Struktur vorschlagen:

Tabelle "Kategorie":

ID | Name
---+-------
 1 | Bäcker

Tabelle "Ort":

ID | Name
---+--------
 1 | Berlin
 2 | München

Tabelle "Person":

ID | Kategorie_ID | Ort_ID | Name
---+--------------+--------+--------
 1 |            1 |      1 | Adams
 2 |            1 |      1 | Bertram
 3 |            1 |      2 | Meier
 4 |            1 |      2 | Muster

Jetzt soll zunächst nach der Kategorie, innerhalb der Kategorie nach Ort und dann nach Name sortiert werden, aber so, dass stets pro Datensatz/Zeile innerhalb der Kategorie die Zeilen 1-3 und dann die Datensätze mit der Ziffer 4 sortiert nach Namen erscheinen sollen.

Ausgehend von der o.g. Struktur könnte diese Abfrage brauchbare Ergebnisse liefern:

SELECT k.Name AS Kategorie_Name  
,      o.Name AS Ort_Name  
,      p.Name AS Person_Name  
  FROM Person    AS p  
  JOIN Kategorie AS k ON p.Kategorie_ID = k.ID  
  JOIN Ort       AS o ON p.Ort_ID = o.ID  
 ORDER BY k.Name ASC  
,         o.Name ASC  
,         p.Name ASC

MfG,
EKKi

--
sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|