2016-11-20 3 views
0

Ich habe eine MS-Access-Datenbank mit zwei Tabellen, die ich besorgt bin.Abfrage zwei separate Felder aus einem Feld in einer Tabelle

Table 1 
     ...[field 1] "Name" text 
     ...[field 2] "IDBorn" number 
     ...[field 3] "IDDied" number 
Table 2 
     ...[field 1] "IDDate" number 
     ...[field 2] "dtISO" text of date 

"IDBorn" und "IDDied" auf "IDDate" im Zusammenhang

Meine Frage. Kann ich (in einer Abfrage) abfragen

...[field 1] "Name" text 
...[field 2] "Born On" text of born on date 
...[field 3] "Died On" text of died on date 

ich nicht in der Lage gewesen zu bekommen eine erfolgreiche UNION-Abfrage zur Arbeit zu kommen. Ist das der Weg?

+1

Warum nicht speichern Datum direkt in der Datenbank in den Spalten "IDBorn" und "IDDied" – bugwheels94

+0

Warum haben Sie Text des Datums? Dies ist ein einfaches Formatierungsproblem. – Fionnuala

+0

UNION dient zum Hinzufügen von Zeilen zum Ende einer vorhandenen Tabelle/Datenmenge. JOIN wird zum Hinzufügen von Spalten zu einer Tabelle/Datensatz verwendet. – ClintB

Antwort

1

Ihren Bedarf erstellen zwei Innen für jedes Feld

select Name, T1A.IDBorn, T1B.IDDied 
from [Table 2] T2 
inner join [Table 1] T1A 
    on T2.IDDate = T1A.IDBorn 
inner join [Table 1] T1B 
    on T2.IDDate = T1B.IDDied 

Hoffnung verbinden diese Sie

+1

Viele Menschen werden am selben Tag geboren. – Fionnuala

+0

Verwenden Sie INNER JOIN, verstanden. –

0

helfen kann, während ja dies ein schlechtes Beispiel ist, wo Sie wollen in für einige Daten, die eine Lookup-Tabelle, um Ihre Haupttabelle (Sie sollten nur das Datumsfeld verwenden), die obige Antwort von Jorge Londoño ist die richtige Art, sie abzufragen.

Sie können die Tabelle auch in der Entwurfsansicht öffnen. Wählen Sie das Feld "IDBorn" Klicken Sie auf die Registerkarte Suche in den Eigenschaften.

Anzeigesteuerung = "Kombinationsfeld".

Zeile Quellentyp = "Tabelle/Abfrage".

Row Source =

SELECT T1A.IDBorn,Name 
FROM [Table 2] T2 INNER JOIN [Table 1] T1A on T2.IDDate = T1A.IDBorn 

Bound column = "1"

Spaltenanzahl = "2"

Spaltenbreite = "0; 20"

Dies wird die zeigen, Aktueller Wert anstelle des Lookup-Werts. Je nachdem, was Sie mit der Tabelle tun, müssen Sie diese Abfrage möglicherweise nicht jedes Mal durchführen, wenn Sie die Daten aus der Tabelle entfernen möchten.

Verwandte Themen