Announcement

Collapse
No announcement yet.

Daten nach Attribut

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

  • Daten nach Attribut

    Hallo

    ich habe eine Frage!!!

    Also ich habe tabelle a

    mit idA und nameA

    tabelle B

    mit idB und a_ID

    ich moechte jetzt das die daten aus nameA, als Spaltenname in B erscheint!!!

    also z.B.

    Datensatz in nameA = a b c d e f g h i j k ....


    nun moechte tabelle b wie folgt haben.

    idb und a_a; a_b; a_c; etc.

    also ich moechte das ich die daten aus nameA als spalte in B bekomme.


    Danke schon mal


    Gruesse

    Eckbert

  • #2
    Folgende Vorgehensweise per PL/SQL:

    1. Spaltenname ermitteln
    2. String mit den gelesenen Spalten zusammenbasteln (Datentyp nicht vergessen)
    Beispiel: String 'CREATE TABLE b (a_a datentyp, ...)'
    3. Tabellenerstellung ausführen
    EXECUTE IMMEDIATE String;

    kuemmelchen

    Comment


    • #3
      wenn dich richtig verstehe dann muss ich da aber jede spalte sozusagen einzeln erzeugen.

      aber des sind teilweise sehr lange datensaetze... etwas muehselig des alles zu schreiben! Aber danke trotzdem.

      hat sonst noch jmd evtl. ne idee ?

      danke

      Comment


      • #4
        SQL: Daten=>Tab_A als Spaltename nach Tab_B

        hier nochmal eine etwas verstaendlichere Formulierung. DANKE.

        ich habe folgendes Problem. Datenbank ist Oracle.

        Tabelle A

        A_ID - Konzept
        -----------------------
        1 101
        2 102
        3 103
        4 104
        5 105

        Nun moechte ich Tabelle B so haben das die Daten aus Konzept (101,102,...) in B als Spalten "B_Konzept" ausgegeben werden.

        Tabelle B

        B_ID B_101 B_102 B_103 B_104 B_105
        --------------------------------------
        1
        2
        3
        4
        5

        Ich bin mir nicht ganz sicher wie ich das in SQL ausdruecken kann. Evtl. etwas mit ALTER TABLE (B ist schon vorhanden und soll kontinuierlich erweitert werden).


        In diesem Zusammenhang eine weitere Frage die jedoch zweitrangig ist bis sich Frage 1 geloest hat.

        Da Tabelle B kontinuierlich erweitert wird waere eine Automatisierung in Form eines Batches ganz gut... also wenn mir dazu jmd Tipps hat. Danke!


        Sollte irgendwas unverstaendlich bleiben bitte einfach Fragen.

        Gruesse

        Eckbert

        Comment


        • #5
          Folgendes Beispiel wird Dir sicherlich weiterhelfen:

          Code:
          DROP TABLE a;
          
          CREATE TABLE a
          (a_id number,
          konzept number
          );
          
          INSERT INTO a VALUES (1, 101);
          INSERT INTO a VALUES (2, 102);
          INSERT INTO a VALUES (3, 103);
          INSERT INTO a VALUES (4, 104);
          INSERT INTO a VALUES (5, 105);
          
          
          DROP TABLE b;
          
          CREATE TABLE b
          (b_id number
          );
          
          
          BEGIN
             FOR zeiger IN (SELECT konzept FROM a) LOOP
                   EXECUTE IMMEDIATE 'ALTER TABLE b ADD ( b_' || zeiger.konzept || ' number )';
             END LOOP;
          END;
          /
          
          desc b
          Das Beispiel liefert als Ergebnis:

          Name Null? Typ
          ----------------------------------------- -------- -------
          B_ID NUMBER
          B_101 NUMBER
          B_102 NUMBER
          B_103 NUMBER
          B_104 NUMBER
          B_105 NUMBER

          kuemmelchen

          Comment

          Working...
          X