2017-03-15 6 views
0

Ich bin mir sicher, dass dies viele Male zuvor gefragt und beantwortet wurde, aber leider habe ich noch nicht das Vokabular, um die Antwort zu finden. Ich suche nach den besten Informationen, die ich nach vielen Stunden der Suche kenne.Merge Datensätze basierend auf eindeutige ID

Grundsätzlich habe ich eine Tabelle mit Daten. Vereinfacht sind die Felder:

  1. Telefonnummer
  2. Namen

Jetzt gibt es doppelte Datensätze für Telefonnummern, weil mehrere Familienmitglieder die gleiche Telefonnummer teilen.

Beispiel:

555-555-5555 | John Smith 
555-555-5555 | Mary Smith 

Im Grunde möchte ich eine Abfrage erstellen, die doppelte Datensätze in einem einzigen Datensatz mit zusätzlichen Feldern zu fusionieren, wie folgt aus:

555-555-5555 | John Smith | Mary Smith 

Wenn jemand mir helfen könnte aus Ich würde es wirklich zu schätzen wissen. Hoffentlich kann ich eines Tages den Gefallen erwidern.

+0

Bewertung http://allenbrowne.com/func-concat.html – June7

+0

Die Lösung oben fügt alle Namen in einem einzigen Text-Feld, das, während es nicht das, was Das tatsächlich angeforderte OP ist wahrscheinlich eine viel bessere Lösung als das Hinzufügen tatsächlicher Felder. Unter der Annahme, dass die Anpassung an die Parameter der Anfrage akzeptabel ist, ist die Verwendung der "ConcatRelated" -Funktion, die im obigen Link gezeigt wird, eine gute Lösung. – SunKnight0

Antwort

0

Ich glaube, Sie so etwas wie tun könnte:

Select PhoneNumber, T1.Name as Name1, T2.Name as Name2, T3.Name as Name3 
From MyTable T1 
Left Join MyTable T2 
On T1.PhoneNumber = T2.PhoneNumber 
AND T1.Name <> T2.Name 
Left Join MyTable T3 
On T1.PhoneNumber = T3.PhoneNumber 
AND T1.Name <> T3.Name 
AND T2.Name <> T3.Name 
+0

Beachten Sie, dass dies kein gültiger MS Access SQL-Code ist. Access erfordert die Verwendung von Klammern bei Abfragen mit mehreren Joins. Es ist auch auf eine festgelegte Anzahl von max. Zu kombinierenden Datensätzen beschränkt. – SunKnight0

Verwandte Themen