Ich sehe hier nirgends eine if-then-else Abfrage, nur
SQL Statements. Wie genau sehen deine Ausgangsdaten aus, und was willst du am Ende wirklich haben?
Zwei "Glaskugel"-Ideen-Ansätze: Wenn du auch null-Felder im Join brauchst, nimm FULL OUTER JOIN. Wenn das Problem nicht im
SQL sondern eher in Delphi liegt (was der Threadtitel irgendwie suggeriert): Praktisch alle
DB-Komponenten nutzen Delphis TField, welches wiederum eine Property "IsNull" bietet. Damit lassen sich auch in Delphi 0 und NULL unterscheiden.
Um aber wirklich konkret zu werden, ist mir das hier alles zu konfus. Sortier dich erstmal selbst
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)