Announcement

Collapse
No announcement yet.

1. Dimensionale Table in 2. Dimensionale Liste

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • 1. Dimensionale Table in 2. Dimensionale Liste

    Hallo,

    suche einen SQL String für folgendes Problem.

    Umwandlung von Daten einer Table in eine 2. Dimensionale Anzeige.

    Beispiel Table:

    1.Name1,Datum1,Ort1
    2.Name2,Datum5, Ort7
    3.Name3,Datum5, Ort3
    4.Name1,Datum6,Ort8

    Soll-Ergebnis:

    --------- Datum1------Datum5------Datum6
    Name1----Ort1------------------------Ort8
    Name2-------------------Ort7
    Name3-------------------Ort3


    Es gibt immer nur jeweils ein Ort im Kreuzungspunkt von Name und Datum.
    Möglichst ohne SP


    Danke schon mal

  • #2
    Hallo,

    lese die Datensätze aus und schreibe alles in ein 2-dimensionales array

    $array[$name][$datum] = ort;

    kind regards

    Comment


    • #3
      1. Dimensionale Table in 2. Dimensionale Liste /Kreuztabelle

      Danke für die schnelle Antwort.

      Das Ergebnis ist eine gute Möglichkeit, aber nicht die von mir erhoffte.

      Aktuell lese ich die Daten mit einem Array ein, was aber in der späteren Verwendung in einer VB.Net Datatable in der Umsetzung zu langsam ist.

      Eine Alternative zum Einlesen der Daten ist diese Stored Procedure.
      http://www.futhark.ch/mysql/106.html
      Diese funktioniert und hat eine Summenbildung von einzelnen Mengen.

      Ich suche die Möglichkeit keine Mengen sondern Text im Kreuzungspunkt anzuzeigen. Es ist immer nur ein Wert in einer "Kreuzung" gepeichert.

      Kann mir jemand sagen welche Teile des Code der SP geändert weren müssen damit keine Summen gebildet werden, sondern der Text angezeigt wird.

      Auszug aus der SP bei der vermutlich die Änderung benötigt wird:


      column_loop: LOOP
      FETCH `column_cursor` INTO `xtab_col_name`, `xtab_col_alias`;
      IF `done` THEN LEAVE column_loop; END IF;
      SET `xtab_query` = CONCAT(`xtab_query`,
      '\tSUM(IF(`', `col_name`, '` = \'',
      `xtab_col_name`, '\', ',
      `col_value`, ', 0)) AS `',
      `xtab_col_alias`, '`,\n');
      END LOOP column_loop;
      CLOSE `column_cursor`;
      DROP TABLE IF EXISTS `xtab_columns`;

      SET `xtab_query` = CONCAT('SELECT `', `row_name`, '`,\n',
      `xtab_query`, '\t',
      IF(`col_value` = '1',
      'COUNT(*)',
      CONCAT('SUM(`', `col_value`, '`)')
      ),
      ' AS `total`\n',
      `row_from`);

      Bin dankbar für jede Hilfe

      Ciao

      Comment

      Working...
      X