 |
Daten nach Attribut |
 |
08.07.2010, 11:38
|
#1
|
|
Neuer Benutzer
Eckbert88 ist offline
Registriert seit: 08.07.2010
Beiträge: 9
|
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
|
|
|
|
08.07.2010, 11:51
|
#2
|
|
Stammgast
kuemmelchen ist offline
Registriert seit: 26.02.2003
Beiträge: 150
|
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
|
|
|
|
08.07.2010, 20:19
|
#3
|
|
Neuer Benutzer
Eckbert88 ist offline
Registriert seit: 08.07.2010
Beiträge: 9
|
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
|
|
|
|
 |
SQL: Daten=>Tab_A als Spaltename nach Tab_B |
 |
13.07.2010, 22:21
|
#4
|
|
Neuer Benutzer
Eckbert88 ist offline
Registriert seit: 08.07.2010
Beiträge: 9
|
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
|
|
|
|
15.07.2010, 10:37
|
#5
|
|
Stammgast
kuemmelchen ist offline
Registriert seit: 26.02.2003
Beiträge: 150
|
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
|
|
|
|
| Themen-Optionen |
|
|
| Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 19:33 Uhr.
|