Thema: Delphi JOIN über 3 Tabellen

Einzelnen Beitrag anzeigen

Luciano

Registriert seit: 17. Dez 2003
Ort: Großostheim
126 Beiträge
 
Turbo Delphi für Win32
 
#1

JOIN über 3 Tabellen

  Alt 28. Sep 2004, 17:40
Hi...

Es ist schon spät und ich bekomme das einfach nicht mehr gebacken

Ich habe 3 Tabellen Reservierung (RE), Abrechnung(AB) und Patienten (PA), die wie folgt miteinander verknüpft sind

PA.PA_NR --> RE.RE_PA_NR --> AB.AB_RE_NR und daraus will ich jetzt ein JOIN machen und nach der Abrechnungsnr suchen (AB.AB_NR)

Unternormalen Umständen funktioniert die Anzeige so, die reine Anzeige!
Delphi-Quellcode:
with Data1.Q_ALLERECHNUNGEN do
  begin
    Active := False;
    SQL.Clear;
    SQL.Add('SELECT '+
            'AB.*, '+
            'RE.RE_NR, RE.RE_PA_NR, RE.RE_ANRDAT, RE.RE_ABRDAT, '+
            'PA.PA_NR, PA.PA_VORNAME, PA.PA_NAME '+
            'FROM '+
            'ABRECHNUNG AB, RESERVIERUNG RE, PATIENTEN PA '+
            'WHERE '+
            'RE.RE_NR = AB.AB_RE_NR '+
            'AND '+
            'PA.PA_NR = RE.RE_PA_NR '+
            'ORDER BY PA.PA_NAME ');
    try
      Active := True;
    except
      ShowMessage('Query Q_ALLERECHNUNGEN konnte nicht geöffnet werden!');
    end;
  end;
Jetzt will ich aber eine Suche machen nach der AB.AB_NR

AND AB.AB_NR = :v_SUCHE Sollte da doch wohl noch irgendwie mit reinzubringen sein!

So bekomme ich nicht das gewünsche Ergebnis...
Delphi-Quellcode:
with Data1.Q_ALLERECHNUNGEN do
  begin
    Active := False;
    SQL.Clear;
    SQL.Add('SELECT '+
            'AB.*, '+
            'RE.RE_NR, RE.RE_PA_NR, RE.RE_ANRDAT, RE.RE_ABRDAT, '+
            'PA.PA_NR, PA.PA_VORNAME, PA.PA_NAME '+
            'FROM '+
            'WHERE '+
            'AB.AB_NR = :v_RECHNGSNR '+
            'AND '+
            'RE.RE_NR = AB.AB_RE_NR '+
            'AND '+
            'PA.PA_NR = RE.RE_PA_NR '+
            'ORDER BY PA.PA_NAME ');
    Prepared := True;
    with Parameters do
      begin
        ParamByName('v_RECHNGSNR').Value := Edit6.Text;
      end;
    try
      Active := True;
    except
      ShowMessage('Query Q_ALLERECHNUNGEN konnte nicht geöffnet werden!');
    end;
  end;
Bin für jeden Tipp dankbar

Greets
Mike Santangelo
Wie kann ich den wissen was ich denke, wenn ich nicht höre was ich sage!
  Mit Zitat antworten Zitat