![]() |
Datenbank: SQL • Version: 2012 • Zugriff über: Management Studio
Inhalt einer Tabelle als neue Felder
Hallo Zusammen,
ich bin SQL Anfänger und habe keine Ahnung wie ich eine Tabelle für mich vernünftig nutzen kann. So sieht es aus: Key Value Attribut 001 Name1 P0002-NACHN 001 Nummer1 P0002-Nr 001 Anrede1 P0002-An 001 Geschlecht1 P0002-G 002 Name2 P0002-NACHN 002 Nummer2 P0002-Nr 002 Anrede2 P0002-An 002 Geschlecht2 P0002-G Der Key ist die Personalnummer eines Users Ich muß die Daten in eine andere Datenbank importieren. Dort gibt es z.B. die Tabelle "Person" wo dann jeweils für die Personen die Attribute aus Feld "Attribut" importiert werden müssen. Jetzt habe ich hier im Feld "Value" aber ALLE User. Damit kann ich ja nix anfangen. Es müsste also so aussehen: Pers Name Nummer Anrede Geschlecht 001 Name1 Nummer1 Anrede1 Geschlecht1 002 Name2 Nummer2 Anrede2 Geschlecht2 Habt ihr da eine Idee? Beste Grüße Andreas |
AW: Inhalt einer Tabelle als neue Felder
Ungefähr so
SQL-Code:
SELECT
k.Key as Pers, nachn.Value as Name, nr.Value as Nummer, an.Value as Anrede, g.Value as Geschlecht FROM ( select distinct Key from table1 ) k JOIN ( select Key, Value from table1 where Attribut='P0002-NACHN' ) nachn ON nachn.Key=k.Key JOIN ( select Key, Value from table1 where Attribut='P0002-Nr' ) nr ON nr.Key=k.Key JOIN ( select Key, Value from table1 where Attribut='P0002-An' ) an ON an.Key=k.Key JOIN ( select Key, Value from table1 where Attribut='P0002-G' ) g ON g.Key=k.Key |
AW: Inhalt einer Tabelle als neue Felder
Cool...Danke. Werde ich morgen auf der Arbeit mal probieren. Jetzt mache ich mal Feierabend!!
Gruß Andreas |
AW: Inhalt einer Tabelle als neue Felder
Klappt nicht:
Msg 156, Level 15, State 1, Line 6 Incorrect syntax near the keyword 'FROM'. Msg 102, Level 15, State 1, Line 6 Incorrect syntax near 'k'. Msg 102, Level 15, State 1, Line 7 Incorrect syntax near 'nachn'. Msg 102, Level 15, State 1, Line 8 Incorrect syntax near 'an'. SELECT k.[Key] as Pers, nachn.[Value] as Name, an.[aValue] as Anrede, FROM ( select distinct [Key] from [mxmc_db].[dbo].[table1] ) k JOIN ( select Key, aValue_neu FROM [mxmc_db].[dbo].[table1] where AttrName='P0002-NACHN' ) nachn ON nachn.Key=k.Key JOIN ( select Key, Value FROM [mxmc_db].[dbo].[table1] where AttrName='P0002-TEXT_P0002_ANRED' ) an ON an.Key=k.Key |
AW: Inhalt einer Tabelle als neue Felder
Überprüfe die Syntax Deines Statements.
|
AW: Inhalt einer Tabelle als neue Felder
Wie schnell doch so ein Morgen kommt :stupid:
Darum schrieb ich ja auch "Ungefähr so". Das konkrete Statement für MSSQL musst du dir selber zusammenbauen, aber das Prinzip bleibt gleich. |
AW: Inhalt einer Tabelle als neue Felder
Hatte keine Ruhe :-)
Hab es jetzt hin bekommen. Allerdings stimmen nur Nachname und Anrede Habe jetzt noch ein Join hinzugefügt mit Vorname und das ganze mal mit Where auf einen einzigen Key dezimiert. Jetzt habe ich tausend mal den selben Key (mich in diesem Fall) da jeder Vorname genommen wird und nicht nur meiner. Edit: Sorry, hatte nen Fehler eingebaut...Alles klappt TOP DANKE!! |
AW: Inhalt einer Tabelle als neue Felder
:thumb:
Ich hoffe ja mal, dass du einen Index auf Key und Attribut hast (unique oder sogar als primary key) sonst wird diese Abfrage mit steigenden Datensätzen schnarchlangsam. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz