danielbodensee
Goto Top

Einträge mit gleichem Wert aufsteigend erweitern

Hallo zusammen,

ich muss diverse Excel-Files (etwa 500) in einem Verzeichnis auslesen und deren Inhalte in eine SQL-Tabelle eintragen. Dabei muss ein Feld als unique definiert werden, genau hier habe ich in den Quelldaten oftmals gleiche werte.

Als Beispiel zwei Spalten:
0811 # Datensatz 1
0812 # Datensatz 2
0813 # Datensatz 3
0813 # Datensatz 4
0813 # Datensatz 5
0814 # Datensatz 6
0814 # Datensatz 7

Als Ergebnis könnte sein:
0811 # Datensatz 1
0812 # Datensatz 2
0813.1 # Datensatz 3
0813.2 # Datensatz 4
0813.3 # Datensatz 5
0814.1 # Datensatz 6
0814.2 # Datensatz 7

Ich müsste also quasi alles einlesen und bei auftreten gleicher Werte diese numerisch erweitert hochzählen.

Wie würdet Ihr vorgehen wenn man zum Beispiel mehrere gleiche Werte hat und diese numerisch aufsteigend erweitern möchte?

Viele Grüsse,
Daniel

Content-ID: 380163

Url: https://administrator.de/contentid/380163

Ausgedruckt am: 18.11.2024 um 01:11 Uhr

ukulele-7
Lösung ukulele-7 13.07.2018 um 08:04:52 Uhr
Goto Top
Ich würde das ganze auf jedenfall nach dem Import machen bzw. vielleicht noch den jeweiligen Dateinamen in eine eigene Spalte setzen aber ansonsten erstmal alles in eine Importtabelle laden.

Im Anschluss ist es leichter, eine Reihenfolge zu bestimmen z.B. mit ROW_NUMBER(), dazu müsstest du uns aber verraten um welches SQL es geht.

Zum Schluss stellt sich noch die Frage warum man eine fortlaufende, eindeutige ID braucht. Bei MSSQL tuts auch wunderbar eine UID mit newid() und fertig.
SachsenHessi
SachsenHessi 13.07.2018 um 09:25:13 Uhr
Goto Top
Hallo,

oder ein PK mit Autoincrement nutzen.
(hat eigentlich jeder SQL-Server)

SH
SeaStorm
SeaStorm 13.07.2018 um 09:28:07 Uhr
Goto Top
sollte die bestehende ID nicht relevant sein, wäre das die präferierte Lösung
Pedant
Lösung Pedant 13.07.2018 um 11:06:30 Uhr
Goto Top
Hallo Daniel,

Zitat von @DanielBodensee:
Dabei muss ein Feld als unique definiert werden, genau hier habe ich in den Quelldaten oftmals gleiche Werte.
wie die Kollegen schon sagten, nimm ein neues Feld mit von der Datenbank generierten Werten für das Unique.

Zitat von @DanielBodensee:
Ich müsste also quasi alles einlesen und bei auftreten gleicher Werte diese numerisch erweitert hochzählen.
Wie würdet Ihr vorgehen wenn man zum Beispiel mehrere gleiche Werte hat und diese numerisch aufsteigend erweitern möchte?
Falls das die Lösung sein muss...
Wenn Du ohnehin Werte veränderst, dann spar Dir die Fallunterscheidung und verändere alle Werte, egal ob sie doppelt sind oder nicht.
Du hängst einfach an jeden Wert einen hochzählende Zahl mit ausreichender Stellenanzahl, dann kannst Du Dir sicher sein, dass es anschließend keine doppelten Werte gibt ohne die Werte prüfen zu müssen.

Beispiel:
0811.001 # Datensatz 10812.002 # Datensatz 20813.003 # Datensatz 30813.004 # Datensatz 40813.005 # Datensatz 5...0872.999 # Datensatz 999

Gruß Frank
DanielBodensee
DanielBodensee 17.08.2018 um 07:24:20 Uhr
Goto Top
Hallo zusammen,

vielen Dank für die Antworten, ich konnte das Problem mit Hinzufügen eines neuen Identifier gelöst.

Gruss,
Daniel