SQL - Abfrageproblem

    • Offizieller Beitrag

    (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/#fiddle=8b655b…143ca70dd27fc48

    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.