Announcement

Collapse
No announcement yet.

Tabelle transponieren

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

  • Tabelle transponieren

    Hallo Leute,

    also ich weiß wirklich nicht weiter.

    Hab da eine Table in der Form:

    _ Attr. 1__| Attr.2 | Attr.3 | Attr.4 |Attr.5
    -----------------------------------------------------
    Szenario1 | Firma | Wert |Wert | Wert
    ------------------------------------------------------
    Szenario2 | Firma | Wert |Wert | Wert
    ------------------------------------------------------
    Szenario3 | Firma | Wert |Wert | Wert

    Nun möchte ich die Tabelle folgendermaßen anzeigen:

    Szenario1 | Szenario2 | Szenario3
    -------------------------------------------------------
    Firma Wert...
    -------------------------------------------------------
    Attr. 1
    -------------------------------------------------------
    Attr. 2
    -------------------------------------------------------
    Attr. n

    Also ich habe es versucht, jedoch keine Lösung gefunden. Hier mein Vorschlag, der jedoch sehr aufwendig ist. Gibts da noch andere Möglichkeiten???

    Code:
    SELECT	'Wert1',
    	SUM(CASE WHEN kalk = 'Nach' then Wert1 else null end) AS Nach,
    	SUM(CASE WHEN kalk = 'Vor' then Wert1 else null end) AS VOR,
    	SUM(CASE WHEN kalk = 'Diff' then Wert1 else null end) AS Diff
    from tblPivot
    
    UNION ALL
    
    SELECT	'Wert2',
    	SUM(CASE WHEN kalk = 'Nach' then Wert2 else null end) AS Nach,
    	SUM(CASE WHEN kalk = 'Vor' then Wert2 else null end) AS VOR,
    	SUM(CASE WHEN kalk = 'Diff' then Wert2 else null end) AS Diff
    from tblPivot
    Wäre für einen Tip wirklich sehr dankbar!

    Mit besten Grüßen
    Norbert
    Beste Grüße
    Norbert

    _Code * It * Simple * and * Smile_

    Access: FAQAccess-Funktionen
    SQL: sqlfaq ° sqlservercentral ° databasejournal ° insideSQL
    C#: snippets ° C# Corner ° codeproject ° Free ebook ° Pflichtlektüre
    Was nützt die beste Informationstechnik, wenn sich die Menschen nichts zu sagen haben?”

  • #2
    Kommt auf das verwendete DBMS an. Nennt man übrigens PIVOT

    Comment


    • #3
      Danke für das aufschlußreiche Kommentar...

      Kann mir jemand richtig helfen!?? Verwende SQL Server 2000.

      lg,
      Norbert
      Beste Grüße
      Norbert

      _Code * It * Simple * and * Smile_

      Access: FAQAccess-Funktionen
      SQL: sqlfaq ° sqlservercentral ° databasejournal ° insideSQL
      C#: snippets ° C# Corner ° codeproject ° Free ebook ° Pflichtlektüre
      Was nützt die beste Informationstechnik, wenn sich die Menschen nichts zu sagen haben?”

      Comment


      • #4
        Es nicht genügend Informationen liefern und dann Patzig werden weil dann ein Helfender keine vollständige Anwort liefern kann.

        Mit dem Begriff PIVOT und dem (bisher zurückgehaltenen Wissen bezüglich MS SQL Server 2000) hätte man in 2 Sekunden in der MSDN z.B. URL="http://msdn.microsoft.com/de-de/library/ms177410.aspx"]diesen Link[/URL] gefunden.

        PIVOT ist ein Bereich im SQL-Standard bei dem es keinen Standard gibt. Jede DBMS kocht hier ihr eigenes Süppchen.

        Comment


        • #5
          Tut mir Leid, nur wenn man meine Tabelle ansieht, ist es normalerweise ersichtlich, dass hier kein klassischer PIVOT Fall vorliegt.
          Ich weiß wie man eine Pivot Tabelle zusammenbastelt. Hab meinen Vorschlag ja eh gepostet u7nd so würde es auch funktionieren, nur glaube ich, dass es eine bessere Lösung gibt.

          Hier noch ein weiterer Link der sehr lebendig die pivotisierung beschreibt:
          http://www.itrain.de/knowhow/sql/tsql/pivot/pivot.asp

          Also vielleicht hat doch noch jemand Lust mir zu helfen...

          Mit besten Grüßen
          Norbert

          PS: Sorry, ich wollte niemanden beleidigen!
          Beste Grüße
          Norbert

          _Code * It * Simple * and * Smile_

          Access: FAQAccess-Funktionen
          SQL: sqlfaq ° sqlservercentral ° databasejournal ° insideSQL
          C#: snippets ° C# Corner ° codeproject ° Free ebook ° Pflichtlektüre
          Was nützt die beste Informationstechnik, wenn sich die Menschen nichts zu sagen haben?”

          Comment


          • #6
            Wieso willst du das überhaupt auf SQL-Ebene erledigen? Ich würde die Tabelle ganz normal abfragen und dann in der GUI die entsprechende Umformung durchführen?

            Deine fehlende Infos waren Primär das verwendete DBMS da bei manchen DB's in solchen Bereichen mehr möglichkeiten gegeben sind als in anderen.

            Comment


            • #7
              Wollte das Ergebnis 1:1 in ein File schreiben bzw. einem Diagramm zuweisen.

              Wie meinst du das "...in der GUI umformen..."?

              Mit besten Grüßen
              Norbert
              Beste Grüße
              Norbert

              _Code * It * Simple * and * Smile_

              Access: FAQAccess-Funktionen
              SQL: sqlfaq ° sqlservercentral ° databasejournal ° insideSQL
              C#: snippets ° C# Corner ° codeproject ° Free ebook ° Pflichtlektüre
              Was nützt die beste Informationstechnik, wenn sich die Menschen nichts zu sagen haben?”

              Comment

              Working...
              X