Mallovitz: Tabelle umstrukturieren

Guten Morgen!

Ich möchte eine Tabelle per Abfrage (View) umstrukturieren von

Id | WertA | WertB | WertC | WertD
-------------------------------------------
1    100     150     120     130
2    120     140     100     150
...

in

Id | Wert | Kategorie
-------------------------------
1   100   WertA
1   150   WertB
1   120   WertC
1   130   WertD
2   120   WertA
2   140   WertB
2   100   WertC
2   150   WertD
...

Ich habe keinen blassen Schimmer, wie ich die Spaltennamen in die jeweilgen Felder kriegen soll...

Mallovitz

  1. Hi!

    Ich möchte eine Tabelle per Abfrage (View) umstrukturieren von
    Id | WertA | WertB | WertC | WertD

    1    100     150     120     130
    2    120     140     100     150
    ...

    Kannst du demjenigen, der dieses Design verbrochen hat, mal sagen, das er da Mist fabriziert hat?

    Id | Wert | Kategorie

    1   100   WertA
    1   150   WertB
    1   120   WertC
    1   130   WertD
    2   120   WertA
    2   140   WertB
    2   100   WertC
    2   150   WertD
    ...
    Ich habe keinen blassen Schimmer, wie ich die Spaltennamen in die jeweilgen Felder kriegen soll...

    Erstmal musst du aus einem Datensatz mehrere machen. Das geht mit einem SELECT schonmal nicht. Da brauchst du in deinem Fall mit 4 Feldern 4 SELECTs, die du mit UNION verbinden kannst. Also, ein SELECT erzeugt die WertA-Datensätze, indem es den Inhalt aus ID und WertA sowie den String 'WertA' mit dem Alias 'Kategorie' liefert. Analog dazu die drei anderen SELECTs.

    Lo!

    1. Kannst du demjenigen, der dieses Design verbrochen hat, mal sagen, das er da Mist fabriziert hat?

      Ja, hab ich schon :) Die "Datenbank" ist vor Jahren mal aus einem Excelimport entstanden und hat genau *trommelwirbel EINE Tabelle *ächz

      Bin schon am Überlegen, ob ich das nicht auseinanderhaue und normalisiere...

      Erstmal musst du aus einem Datensatz mehrere machen. Das geht mit einem SELECT schonmal nicht. Da brauchst du in deinem Fall mit 4 Feldern 4 SELECTs, die du mit UNION verbinden kannst. Also, ein SELECT erzeugt die WertA-Datensätze, indem es den Inhalt aus ID und WertA sowie den String 'WertA' mit dem Alias 'Kategorie' liefert. Analog dazu die drei anderen SELECTs.

      Lo!

      Danke!

      1. Hallo,

        nach mach doch n Refactoring. Die urspruengliche Ansicht kannst du doch auch wieder durch eine View wiederherstellen.

        Was du suchst, nennt sich UNPIVOTING.

        Ueber welches Datenbanksystem und Version reden wir hier?

        Cheers, Frank

    2. moin,

      Ich möchte eine Tabelle per Abfrage (View) umstrukturieren von
      Id | WertA | WertB | WertC | WertD

      1    100     150     120     130
      2    120     140     100     150
      ...

      Kannst du demjenigen, der dieses Design verbrochen hat, mal sagen, das er da Mist fabriziert hat?

      kann man so pauschal ohne die genauen umstände und schon gar nicht ohne die entitäten und attribute zu kennen gar nicht sagen. ich weiß noch nicht mal, was sich hinter WertA oder WertB verbirgt....

      Ilja