Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Verschachtelte SQL Abfrage (https://www.delphipraxis.net/67267-verschachtelte-sql-abfrage.html)

mewlos26 12. Apr 2006 00:06

Datenbank: Access • Version: 2003 • Zugriff über: ADO

Verschachtelte SQL Abfrage
 
Hallo,

kann mir jemand mal ein Beispiel liefern wie ich mit einer verschachtelten Select Abfrage die aus 2 Select Anweisungen besteht ein Query erzeugen kann? Habe hier im Forum noch nicht das richtige dazu gefunden, danke.

Gruß
Markos

Hansa 12. Apr 2006 02:33

Re: Verschachtelte SQL Abfrage
 
Dazu muß die "verschachtelte" SQL-Anweisung erst mal gezeigt werden.

mkinzler 12. Apr 2006 05:50

Re: Verschachtelte SQL Abfrage
 
Was meinst du?
Subselect?
SQL-Code:
select name from tabelle1 where id in (select taba from tabelle2);
Union?
SQL-Code:
select * from tabelle 1 union select * from tabelle2;

mewlos26 12. Apr 2006 07:39

Re: Verschachtelte SQL Abfrage
 
@mkinzler

Ich möchte gerne den Between Teil in eine Subselect packen, weil so die Abfrage nicht funktioniert. Er fragt buchung.abreise nach dem OR nicht ab und dachte vielleicht funktioniert es wenn man die 2te Between Abfrage in ein Subselect packt, oder wie müsste die Select Abfrage richtig lauten? Danke für Deine Hilfe!

Delphi-Quellcode:
SQL.Text:=
  'SELECT buchung.oid, buchung.wid, buchung.anreise, buchung.abreise, buchung.GID, wohnungen.wid, wohnungen.wnr, wohnungen.wname, adressen.gid,'+#13#10+
  'objekte.oid, objekte.objname, objekte.objnr'+#13#10+
  'FROM buchung, adressen, wohnungen, objekte'+#13#10+
  'WHERE Buchung.gid = adressen.gid '+#13#10+
  'AND  Buchung.wid = wohnungen.wid'+#13#10+
  'AND  Buchung.oid = objekte.oid '+#13#10+
  'AND (buchung.wid = :wohnung1) AND (buchung.oid = :objekt1)'+#13#10+
  'AND ((buchung.anreise BETWEEN :datevon1 AND :datebis1)'+#13#10+
  'OR (buchung.abreise BETWEEN :datevon1 AND :datebis1))'+#13#10+
  'ORDER BY buchung.anreise, adressen.name';
    with Parameters do
    begin
      ParamValues['datevon1']  :=PlannerDatePicker21.Date;
      ParamValues['datebis1']  :=PlannerDatePicker22.Date;
      ParamValues['objekt1']   :=oid_zusatz;
      ParamValues['wohnung1']  :=wid_zusatz;
    end;

Schodn 12. Apr 2006 09:06

Re: Verschachtelte SQL Abfrage
 
Delphi-Quellcode:
aqTmp.SQL.Add('SELECT a.stil, a.raum, a.brett, a.bild, b.brett_bez, b.id_adam FROM showroom a' +
                       ' INNER JOIN adam_brett b' +
                       ' ON a.brett = b.brett_bez' +
                       ' WHERE (a.stil = :Param) AND (a.raum = :Param2) AND (b.id_adam = :Param3)');

        aqTmp.Parameters.ParamByName('Param').Value := s_einrichtungsstil;
        aqTmp.Parameters.ParamByName('Param2').Value := s_raum;
        aqTmp.Parameters.ParamByName('Param3').Value := s_brett;
hilft dir das weiter?

alzaimar 12. Apr 2006 10:19

Re: Verschachtelte SQL Abfrage
 
@mewlos26: Probier erstmal
SQL-Code:
select * 
  from buchung
 where buchung.anreise between <Datum1> and <Datum2>
    or Buchung.abreise between <datum1> and <datum2>
Natürlich mit entsprechendem Datum und am Besten in Access selbst. Wenn Du dann die richtigen Buchungen rausfilterst, dann kannst Du dir dein Select zusammenbasteln, wobei ich die veraltete Schreibweise:
SQL-Code:
select * from Tabelle1, Tabelle2... where Tabelle1.ID = Tabelle2.Link ...
nicht nehmen würde, sondern die offizielle JOIN-Schreibweise.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:44 Uhr.

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