Announcement

Collapse
No announcement yet.

Variable Benennung von Spalten

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

  • Variable Benennung von Spalten

    Hallo

    Ich arbeite mit PL/SQL Developer 10.0 und Oracle 11.2g.

    Ich möchte die Umsatzspalten mit der Jahreszahl benennen.

    Code:
    select artikel, umsatz01 as umsatz01_&Jahr, umsatz01 as umsatz01_2013   -- ....
    from umsatz
    where (jahr = &Jahr or jahr = &Jahr-1)
    Die 2. Spalte heisst also umsatz01_2014.
    Wie kann ich in der Spaltenüberschrift das Jahr 2013 auch variabel darstellen? (umsatz01_&Jahr-1 geht nicht)

    Danke und Gruss
    Thomas

  • #2
    Ab 11g kommt wahrscheinlich PIVOT in Frage, schau mal hier:
    http://www.oracle.com/technetwork/ar...ot-097235.html
    Gruß, defo

    Comment


    • #3
      Ich habe meine Spaltennamen nicht in den Zeilen

      Ausgangslage:
      JAHR ARNR UMSATZ01 UMSATZ02 ....
      2013 12345 123.23 878.23
      2014 12345 584.00 872.36

      Ich frage die Umsätze pro Monat und Jahr ab und mache dann ein UNION.

      select artikel, umsatz01 as umsatz01_&Jahr, umsatz01 as umsatz01_2013
      (
      select arnr, umsatz01, 0, umsatz02, 0, .... where jahr = &_Jahr
      UNION
      select arnr, 0, umsatz01, 0, umsatz02, .... where jahr = &_Jahr-1
      )

      Das klappt alles - ausser der variablen Beschriftung der Spalten mit dem Jahr 2013.

      Ziel:
      ARNR UMSATZ01_2014 UMSATZ01_2013 UMSATZ02_2014 UMSATZ02_2013
      12345 123.23 584.00 878.23 872.36

      Mit der Technik von deinem Link scheint mir das nicht zu gehen.

      Aber: interessante Technik - werde ich mir merken.

      Comment


      • #4
        das Union versteh ich nicht, wieso nicht
        Code:
        ..where jahr in ( &jahr,  &_Jahr-1)
        oder per "or"?

        Aber Du hast das Jahr in den Zeilen, also den "dynamischen" Teil.
        Ein
        select 'Umsatz01_'||jahr ..
        für die Überschriften sollte also kein Problem sein, oder?
        Gruß, defo

        Comment


        • #5
          Doch, doch.
          Das select umsatz01_&_Jahr .... ist nicht das Problem
          aber das select umsatz01&_Jahr-1

          Das _Jahr gebe ich als Variable ein.

          Comment


          • #6
            Eine Alternative wäre natürlich, wenn ich das Vorjahr (=2013) auch als Variable eingebe. :-)

            Comment


            • #7
              Ach, ich habe verdrängt, dass Oracle Pivot Syntax eine feste Werteliste verlangt (obwohl sie einfach <subquery> in der Doku schreiben). Damit ist da Problem also nur verschoben.
              Es gibt eine Ausnahme, "Pivot XML" erlaubt beliebige Feldwerte, erzeugt aber XML output.
              Hilft also auch nicht direkt weiter.
              Gruß, defo

              Comment


              • #8
                Benötigst du eine statisches SELECT Statement oder kannst du es auch mit einen Expliziten Cursor machen? Dort hättest du so ziemlich alle Freiheiten.

                Gruss

                Comment


                • #9
                  Ich muss da abbrechen.
                  Ich habe mich mit der Alternative abgefunden: aktuelles Jahr und Vorjahr als Variable eingeben.

                  Danke für die Inputs
                  Thomas

                  Comment

                  Working...
                  X