Ich habe zwei Tabellen, denen ich beitreten muss, und es fällt mir schwer, es zu tun. Hier ist ein vereinfachtes Beispiel:Bedingte Join in ACCESS SQL basierend auf dem Wert des Feldes?
Tabelle 1 (T1) mit den Feldern: Cust_ID, prod_id, TYPE_ID
Tabelle 2 (T2) mit den Feldern: Cust_ID, prod_id, TYPE_ID, Ergebnisse
Der Haken ist: Ich brauche alle Werte aus Tabelle eins. Wenn T1.Cust_ID Null ist, dann brauche ich alle Zeilen von T2 mit der gleichen Prod_ID und Type_ID. Wenn T1.Cust_ID nicht Null ist, dann brauche ich nur die Zeilen von T2, wobei T1.Cust_ID = T2.Cust_ID mit derselben Prod_ID und Type_ID ist.
Mein erster Versuch war, eine Union-Abfrage zu machen:
Select T1.Cust_ID, T1.Prod_ID, T1.Type_ID, T2.Results
From T1 left join T2
On T1.Cust_ID=T1.Cust_ID and T1.Prod_ID=T2.Prod_ID and T1.Type_ID=T2.Type_ID
Where T1.Cust_ID is not Null
Union
Select T1.Cust_ID, T1.Prod_ID, T1.Type_ID, T2.Results
From T1 left join T2
On T1.Prod_ID=T2.Prod_ID and T1.Type_ID=T2.Type_ID
Where T1.Cust_ID is Null
ich seine Brute Ansatz kennen, aber es funktioniert für ein Feld. Jetzt muss ich diese Art von Bedingung auf mehr als ein Feld haben und ich fragte mich, wie man es dynamisch macht. Ich suchte online nach einer Lösung, konnte aber in dieser Situation niemanden finden.
Irgendwelche Ideen oder Links zur gleichen Frage? Danke
Stellt sich heraus, es gibt keine „CASE“ Funktion in ACCESS :-( –
Sorry, ich habe Sie MSACCESS nicht bemerkt, indem ich bearbeitet Code-Schnipsel Versuchen Sie es jetzt nutzen.. – Barkezy
Hallo, Danke für deine Antwort, es stellt sich heraus, dass MS ACCESS auch keine vollständigen Outer Joins unterstützt. –