ist Ich habe 3 Tabellen. Sie alle repräsentieren eine andere Phase eines Prozesses.Tabellen in SQL verbinden, wenn Tabellenwert gleich
Tabelle 1:
ID Process1
1 a
2 b
3 c
4 d
Tabelle 2:
ID ID2 Process2
1 50 e
2 51 f
4 52 g
Tabelle 3:
IDfromPrevious ID3 Process3
50 500 h
51 501 i
52 502 j
3 503 k
Ich möchte 4 Tabelle erstellen:
ID3 Process1 Process2 Process3
500 a e h
501 b f i
502 d g j
503 c k
Das Problem besteht darin, dass ein Element von Prozess 1 nach 3 verschoben wird. Andere Elemente werden von Prozess 1 nach 2 zu 3 verschoben. Alles endet jedoch in Prozess 3. Außerdem wird dem Element über jeden Prozess eine neue ID zugewiesen. Ich arbeite in MS Access 2016.
Ich weiß nicht, wo ich mit der SQL-Anweisung beginnen soll. Ich habe noch nie, wenn Anweisungen in SQL geschrieben, aber ich möchte, dass die Logik, so etwas arbeiten:
SELECT Table3.ID3, Table1.Process1, Table2.Process2, Table3.Process3
FROM (IF Table1.ID = Table3.IDfromPrevious Then Table1 INNER JOIN Table3 ON Table1.ID = Table3.IDfromPervious ELSE Table2.ID2 = Table3.IDfromPrevious Then Table2 INNER JOIN Table3 ON Table2.ID2 = Table3.IDfromPervious)
In SQL-Abfragen ist keine bedingte Ausführung verfügbar. – jarlh
ist es möglich, eine IDfromPrevious in Tabelle3, die sowohl in Tabelle1 und Tabelle2 vorhanden ist? – MtwStark
Woher wissen Sie, dass 'IDFromPrevious' von 3 aus Tabelle 1 und nicht aus Tabelle 2 stammt? Ich würde auch vorschlagen, dass Sie Google "SQL-Bäume und Hierarchien Joe Celko". Er hat ein ganzes Buch über das Thema geschrieben, obwohl Sie genug Informationen bekommen können, um diese Daten korrekt zu modellieren, nur aus einigen seiner Nachrichtengruppen und Forenbeiträge. –