Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

vertikale Daten horizontal darstellen

Empfohlene Antworten

Veröffentlicht

Moinmoin,

ich habe da mal eine Frage ...

Wenn ich mit sql Daten selektiere sieht das ja in etwa so aus;

<< select Niederlassungsnummer, Produktnummer from sorte where Niederlassungsnummer in (30,31);>>

Niederlassungsnummer Produktnummer

30 10

30 20

30 22

30 24

31 10

31 21

31 22

31 25

Wenn ich das jetzt aber anders darstellen möchte, nämlich so

Niederlassungsnummer Produktnummer

30 10, 20, 22, 24

31 10, 21, 22, 25

Wie müsste das Statement aussehen? :confused:

Mfg

Sven

kommt auf die datenbank drauf an ;)

jedoch bieten manche funktionen wie PIVOT etc. an; denn das ist genau das, was du willst: pivotieren.

s'Amstel

Hallo,

ist ne Oracle DB auf die ich mit dem PLSQL-Developer zugreife, stellt sich somit die die Frage ob SQL das leistet

Mfg

Sven

Hallo,

ist ne Oracle DB auf die ich mit dem PLSQL-Developer zugreife, stellt sich somit die die Frage ob SQL das leistet

Mfg

Sven

-ja/Nein/Vieleicht....Welche Version der DB ist es denn ?

-- Ab Oracle 9 könntest du mal folgendes probieren :


select

   deptno,

   xmltransform

   (

      sys_xmlagg

      (

         sys_xmlgen(ename)

      ),

     xmltype

     (

       '<?xml version="1.0"?><xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

          <xsl:template match="/">

            <xsl:for-each select="/ROWSET/ENAME">

              <xsl:value-of select="text()"/>;</xsl:for-each>

          </xsl:template>

        </xsl:stylesheet>'

     )

  ).getstringval() listagg

from scott.emp

group by deptno

/

- Dies ist für das Beispielschema SCOTT/TIGER

- Müsstest du für deine Zwecke anpassen

- Ab Oracle 11g gibt es dafür einen deziedierte PIVOT - Funktion

Gruss

Bearbeitet von dbwizard

oracle 9, 10, 11?

AFAIR ist PIVOT ab 11g implementiert, davor müsstest du irgendein verfügbares package verwenden.

s'Amstel

Hallo,

danke für die Antworten, mit "pivotieren" bin ich selbst nochmal suchen gegangen und habe auch was gefunden was ich mal ausprobieren muss.

Allerdings möchte ich meine Frage nochmal vereinfachen (ob das allerdings wirklich einfacher ist?.....).

Die neu horizontal dargestellten Produkte sollen nicht in jeweils eigenen Spalten sondern kommagetrennt zusammen in einer Spalte stehen.

Also

Niederlassungsnummer Produktnummer

30-------------------10, 20, 22, 24

31-------------------10, 21, 22, 25

mfg

Sven

(Wenn der Bauer nicht schwimmen kann ist die Badehose schuld!!)

Hallo,

danke für die Antworten, mit "pivotieren" bin ich selbst nochmal suchen gegangen und habe auch was gefunden was ich mal ausprobieren muss.

Allerdings möchte ich meine Frage nochmal vereinfachen (ob das allerdings wirklich einfacher ist?.....).

Die neu horizontal dargestellten Produkte sollen nicht in jeweils eigenen Spalten sondern kommagetrennt zusammen in einer Spalte stehen.

Also

Niederlassungsnummer Produktnummer

30-------------------10, 20, 22, 24

31-------------------10, 21, 22, 25

mfg

Sven

(Wenn der Bauer nicht schwimmen kann ist die Badehose schuld!!)

Hallo,

hast du mein Beispiel probiert ? Es macht ja genau das gewünschte ? Du kannst das "Trennzeichen" hier einstellen (Aktuell ist es ein Strichpunkt)


<xsl:value-of select="text()"/>;</xsl:for-each> <<<-----Hier Strichpunkt durch Komma oder was auch immer erstetzen...

gruss

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.