Hallo Leute ,
ich sitze seit längerem an folgendem Problem :
Ich habe folgende Tabellen :
Quelltabelle :
ProductID (INT) | LineNo (INT) | Text (Nvarchar)
10015 | 10 | Dies ist ein
10015 | 12 | ganz tolles
10015 | 16 | Product.
10020 | 100 | Ein weiteres
10020 | 110 | tolles
10020 | 120 | Product.
Ich möchte die Daten in eine neue Tabelle kopieren.
z.B.
Zieltabelle :
ProductID (INT) | Text (nText)
10015 | Dies ist ein ganz tolles Product
10020 | Ein weiteres neues Product
Wie mach ich das ?
Wie mach ich das ?
Teile, o Fremder, der unwissenden Welt zunächst mit, um welche Datenbank es sich handelt; sodann harre gläubig der da unzweifelhaft kommenden qualifizierten Antworten, ommmmm.
Wie mach ich das ?
Teile, o Fremder, der unwissenden Welt zunächst mit, um welche
Datenbank es sich handelt; sodann harre gläubig der da
unzweifelhaft kommenden qualifizierten Antworten, ommmmm.
Hallo,
die verwendete Datenbank ist MS-SQL 2000 Server.
bye
Hallo Kepir!
Quelltabelle :
ProductID (INT) | LineNo (INT) | Text (Nvarchar)
Zieltabelle :
ProductID (INT) | Text (nText)
Wie mach ich das ?
Ich würde das prozedural machen, ist mit Sicherheit am Schnellsten und einfachsten. Allerdings kann ich dir mangels SQL-Server Kenntnissen da leider nicht wirklich weiterhelfen. In PL/SQL (Oracle) würde das so gehen (unwesentliche Teile wie Variablendeklarationen einmal weggelassen):
aLastProductID := NULL;
FOR aRec IN (SELECT \* FROM my\_table ORDER BY ProductID, LineNo) LOOP
IF aLastProductID IS NULL THEN
aLastProductID := aRec.ProductID;
END IF;
IF aRec.ProductID = aLastProductID THEN
aNewText := aNewText || aRec.Text;
ELSE
INSERT INTO my\_new\_table (ID, Text) VALUES (aLastProductID, aNewText);
aLastProductID := aRec.ProductId;
aNewText := '';
END IF;
END LOOP;
IF aLastProductID IS NOT NULL THEN
INSERT INTO my\_new\_table (ID, Text) VALUES (aLastProductID, aNewText);
END IF;
Gruß
Martin