[SQL] Matrix Abfrage - Werte als Zeile und Spalte

Dieses Thema im Forum "Webentwicklung" wurde erstellt von SurTana, 8. September 2010 .

  1. 8. September 2010
    Matrix Abfrage - Werte als Zeile und Spalte

    Hi Leute,
    bisschen doofes Topic, aber ich weiss nicht wie ich es genau nennen soll.

    Meine Tabell ist so aufgebaut:

    Code:
    ID | Reihe | Platz | Status
     0 | 1 | 1 | 2
     1 | 1 | 2 | 7
     2 | 2 | 1 | 2
    Bisher habe ich es mit einer for-Schleife gelöst.
    Code:
    for (int i = 0; i < Rows; i++)
     {
     for (int j = 0; j < NumRowSeats.Max()+1; j++)
     {
     SQLString="Select Status...;
    
    Ist aber nicht sehr Performant, für jeden Status eine einzelne Abfrage zu starten.

    Was ich aber im Prinzip dafür brauche ist eine Matrix, und ich weiss mir halt nicht anders zu helfen als die auf meine Weise einzulesen, oder gibt es evtl. einen Weg, durch JOINs oder so eine temp. Tabelle direkt so auszugeben wie ich es brauche?

    Es sollte hinterher so aussehen
    Code:
    Reihe | Platz 1| Platz 2| Platz 3| Platz 4
     1 | 2 | 7 | 2 |
     2 | 7 | 7 | 7 | 7
     3 | 2 | 2 | 2 |
    
    Reihen können allerdings auch unterschiedlich viele Plätze haben, zB Reihe 2 hat als einzige 4 Plätze
     
  2. 8. September 2010
    AW: Matrix Abfrage - Werte als Zeile und Spalte

    Mit "ORDER BY Reihe, Platz" sind die Daten perfekt für dein Vorhaben sortiert. Du musst dich in der Schleife dann nur noch um leere Felder kümmern.

    Ansonsten kannst du alles natürlich auch in ein mehrdimensionales Array packen und mit einer weiteren Schleife auslesen:
    Code:
    while (...)
    {
     matrix[reihe][platz] = status;
    }
     
  3. 8. September 2010
    AW: Matrix Abfrage - Werte als Zeile und Spalte

    Order By ist irgendwie nicht so ganz das, was ich suche. Ich will ja die Struktur umkrempeln
    auf das zeilenweise durchgehen mit einer while schleife hätte ich eher kommen können, das ist allerdings viel performanter! danke dafür!
     
  4. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.