Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL-Abfrage über 2 Tabellen (https://www.delphipraxis.net/73202-sql-abfrage-ueber-2-tabellen.html)

hsbc 13. Jul 2006 16:37

Datenbank: Firebird • Version: 1.5.3 • Zugriff über: ZEOS

SQL-Abfrage über 2 Tabellen
 
Hallo allerseits!

Ich lese im ersten Select aus der Buchungs-Tabelle die KundenNr aus und lese daraufhin aus der Kunden-Tabelle anhand der KundenNr die restlichen Kundendaten aus. Funktioniert ja bestens. Jetzt meine Frage:

Kann man diese beiden Select zu einem einzigen zusammenfassen?

Delphi-Quellcode:
    ZQ_Buchung.Close;
    ZQ_Buchung.SQL.Text := 'SELECT * FROM BUCHUNG WHERE (DATUM = ' + QuotedStr(Datum) +
                           ') AND (ZIMMERNR = ' + QuotedStr(ZimmerNr) + ')';
    try
      ZQ_Buchung.Open;

      ZQ_Kunden.Close;
      ZQ_Kunden.SQL.Text := 'SELECT * FROM KUNDEN WHERE KUNDENNR = ' +
                             ZQ_Buchung.FieldByName('KUNDENNR').AsString;
      try
        ZQ_Kunden.Open;
      except
      end;

    except
    end;
mfg
Herbert

KrasserChecker 13. Jul 2006 16:45

Re: SQL-Abfrage über 2 Tabellen
 
Delphi-Quellcode:
    ZQ_Buchung.SQL.Text :=
      'SELECT * FROM BUCHUNG b, KUNDEN k WHERE (DATUM = :DATUM) AND ' +
      '(ZIMMERNR = :ZIMMERNR) AND (k.KUNDENNR = b.KUNDENNR)';

    try
      ZQBuchung.Prepare;
      ZQBuchung.ParamByName('DATUM').AsDateTime := Datum;
      ZQBuchung.ParamByName('ZIMMERNR').AsString := ZimmerNr;

      ZQ_Buchung.Open;

    except
    end;

mquadrat 13. Jul 2006 16:49

Re: SQL-Abfrage über 2 Tabellen
 
oder auch

SQL-Code:
SELECT * 
FROM BUCHUNG
INNER JOIN KUNDEN ON BUCHUNG.KUNDENNR = KUNDEN.KUNDENNR
WHERE BUCHUNG.DATUM = :Datum and BUCHUNG.ZIMMERNR = :Zimmernummer
Das Buchung. vor Datum und Zimmernr kann man weglassen falls es diese Felder in der Tabelle Kunden nicht gibt

hsbc 13. Jul 2006 17:18

Re: SQL-Abfrage über 2 Tabellen
 
OK, danke vorerst mal für die raschen Antworten. Werde ich gleich mal probieren.

mfg
Herbert


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz