SQL - Abfrageproblem

  • (Firebird SQL 1.5)


    Ziel ist eine Liste für den Servicemitarbeiter, mit allen relevanten Kundendaten zu den Geräten zu erhalten (es erfolgt noch eine Selektion bestimmter Geräte, das hat aber auf diese Abfrage keinen Einfluß).

    Ich frage in einem ersten Schritt die Geräte, die Kunden zugebucht sind ab. Dabei enthält jeder DS alle relevanten Kundendaten (KD-Nr,Name,Anschrift,Tel,Handy) und die Hersteller-SerNr. des Gerätes.

    Das funktioniert, wie gewünscht.

    Fiktives Ergebnis (von einem Kunden):

    100251,Max Meier,12345 Musterdorf,03123-304050,0170-11223344,G1234QH789

    100251,Max Meier,12345 Musterdorf,03123-304050,0170-11223344,G1234QM137


    Jetzt möchte ich zu den vorhandenen Daten noch die Rufnummer eines Ansprechpartners einfügen (sofern vorhanden, aus extra Tabelle).

    gewünscht:

    100251,Max Meier,12345 Musterdorf,03123-304050,0170-11223344,G1234QH789,03123-304055

    100251,Max Meier,12345 Musterdorf,03123-304050,0170-11223344,G1234QM137,03123-304055


    tatsächlich:

    100251,Max Meier,12345 Musterdorf,03123-304050,0170-11223344,G1234QH789

    100251,Max Meier,12345 Musterdorf,03123-304050,0170-11223344,G1234QH789,03123-304055

    100251,Max Meier,12345 Musterdorf,03123-304050,0170-11223344,G1234QM137

    100251,Max Meier,12345 Musterdorf,03123-304050,0170-11223344,G1234QM137,03123-304055



    Hier die Abfragen: SQL_Ansprech.pdf


    Wie muss ich das korrekt einbinden?

  • Ich habe keine Ahnung von FireBird und dessen Eigenheiten.
    Die Dopplung beim Left (outer) Join würde ich aber theoretisch zumindest auch nicht so erwarten.


    Ich habe das auch mal in SQLite nachgebastelt und kann das Verhalten dort auch nicht reproduzieren:

    https://sqliteonline.com/#fidd…df943c8181143ca70dd27fc48


    Evtl. ist es daher doch irgendeine Eigenheit vom Firebird?
    Eine Frage noch: Was ist "&&SQL1"? Eine View oder irgendeine Temp-Table?
    Vielleicht mal schauen was passiert wenn statdessen dafür ne View erzeugt.