Forum: Datenbanken
C#
by Jürgen Thomas,
21. Okt 2007
Danke an Jelly und mkinzler,
aufbauend auf Euren Hinweisen habe ich es geschafft und dabei sogar den Status eingebaut. Die entscheidenden Ideen waren, MIN() zu verwenden mit passender Sortierung. Zusätzlich werden GROUP BY und ORDER BY sowie weiterhin DISTINCT benötigt. So sieht jetzt mein Code aus:
INSERT INTO STR_Namen
( ID, Aendg_per,
Name_Sort, Name_lang,...
Forum: Datenbanken
C#
by Jürgen Thomas,
21. Okt 2007
Siehe Quelltabelle in #9. Vorzugsweise 'G' (= gültig), aber den gibt es nicht bei allen Namen (in meinem Beispiel bei ID=837). Stattdessen kann ich, wie gesagt, auch '0' benutzen. Jürgen
Forum: Datenbanken
C#
by Jürgen Thomas,
21. Okt 2007
Das scheint das einfachste Verfahren zu sein.
Kann ich da noch den Status einbauen? Mir ist gerade die Idee gekommen, dass ich den Status 'G' durch '0' ersetzen könnte; dann wäre bei "Order By Str_ID, Status" der jeweils erste Treffer derjenige, den ich in die Zieltabelle nehmen möchte. Aber mir fehlt noch eine Idee, wie ich das mit "FIRST 1" kombinieren könnte. (Ich vermute, dass ein...
Forum: Datenbanken
C#
by Jürgen Thomas,
21. Okt 2007
Die Datenstruktur ist von der Post vorgegeben. Die Quelldatei ist eine Textdatei (feste Feld- und Satzlängen) mit 150 MB. Ich will sie in mehrere Tabellen in einer "richtigen" Datenbank übernehmen.
Str_ID ist die bundesweit eindeutige laufende Nummer zu einem Straßennamen.
Str_Nr ist die laufende Nummer für alle Straßen mit gleichem Namen.
Name_Sort ist die eindeutige, sortierbare...
Forum: Datenbanken
C#
by Jürgen Thomas,
21. Okt 2007
Bitte sehr:
STR_ID STR_NR STATUS NAME_SORT NAME46 NAME22
---------------------------------------------------------------------
837 1 S AGASTR Agastr. Agastr.
838 1 G AGATHAGASSE Agathagasse Agathagasse
839 1 G AGATHAPLATZ Agathaplatz Agathaplatz
840 1 ...
Forum: Datenbanken
C#
by Jürgen Thomas,
21. Okt 2007
Das ist klar: ID oder Name1; jeder Wert für sich ist eindeutig, die Kombination ist also die Basis der Zieltabelle.
Nein, ich will je einen von teilweise mehreren verschiedenen Werten für Name2 und Name3 übernehmen. Welcher das ist, ist mir ziemlich egal (deshalb auch FIRST 1 bei einem meiner Versuche). Am liebsten hätte ich etwas mit Status 'G' in der Quelle (aber das gibt es nicht...
Forum: Datenbanken
C#
by Jürgen Thomas,
21. Okt 2007
Das mit DISTINCT ist mir klar.
Aber den Vorschlag verstehe ich nicht: die ID ist ja eindeutig, und die will ich behalten. Von den unterschiedlichen Werten bei Name2 und Name3 will ich genau einen übernehmen (vorzugsweise einen mit Status = 'G'). Jürgen
Forum: Datenbanken
C#
by Jürgen Thomas,
21. Okt 2007
Hallo,
ich bin dabei, eine nicht gut strukturierte Datendatei besser zu normalisieren, und habe Probleme, eine Liste eindeutiger Einträge zu erstellen. (Konkret: es handelt sich um die Straßendatei aus "Datafactory Postalcode" der Deutschen Post AG; ich möchte durch eine zusätzliche Tabelle mit eindeutigen Straßennamen die Wiederholungen reduzieren.)
Tabelle Quelle enthält etwa 260.000...