Re: verschachtelte SQL?
From: Michael Bayer (spamentsorgung_at_gmx.net)
Date: 02/04/04
- Next message: Peter Fleischer: "Re: MSDataShape geht nicht mehr... -2147467259"
- Previous message: Udo Abel: "Re: MSDataShape geht nicht mehr... -2147467259"
- Messages sorted by: [ date ] [ thread ]
Date: Wed, 04 Feb 2004 13:55:33 +0100
Hallo Torsten,
[...]
Bei wirklich umfangreichen Abfragen lasse ich meistens Access für mich
arbeiten ;-) Ich erstelle eine Abfrage, in der alle benötigten Tabellen
vorkommen (in Deinem Fall also die Tabellen, die Deinen drei Abfragen
zugrunde liegen), verknüpfe sie und lasse mir dann den SQL-Befehl ausgeben.
Wenn Du eine Abfrage ausführen willst, die auf den Ergebnissen einer
anderen Abfrage basiert, erzeugst Du z.B. verschachtelte SELECT-Anweisung.
Beispiel: Du willst die Daten der Kunden haben, die im Jahr 2003 Umsatz
generiert haben. Die Kundendaten befinden sich in der Tabelle "Kunden",
die Umsatzdaten in der Tabelle Statistik. Das Feld, das in beiden
Tabellen vorkommt, ist die Kundennummer (KDNR):
SELECT KDNR, KundeVorname, KundeNachname, KundeStraße, Kundeusw. FROM
Kunden WHERE KDNR IN (SELECT KDNR FROM Statistik WHERE Umsatzjahr =
2003) ORDER BY KundeNachname
Oder Du verwendest hierarchische Recordsets. Das heißt, ein Datensatz
Deines Recordset enthält einige/alle Datenfelder der Mastertabelle (z.B.
Kunden) und als letztes Feld wieder ein Recordset, welches alle/einige
Daten der Detailtabelle (z.B. Aufträge dieser Kunden) enthält. Beispiel,
wenn die beiden Tabellen wieder über das Feld KDNR verknüpft sind:
SHAPE {Select KDNR, Name, Straße, PLZ, Ort. FROM Kunden}
APPEND ({Select AuftragsNr, AuftragsDatum, Liefertag, Bestelldatum
FROM Aufträge} AS rsAufträge
RELATE KDNR TO KDNR)
Ergebnis-Recordset:
Kunden.KDNR
Kunden.Name
Kunden.Straße
Kunden.PLZ
Kunden.Ort
rsAufträge
AuftragsNr
AuftragsDatum
Liefertag
Bestelldatum
> oder kann man zunächst ein Recordset für abf1 erstellen und dann über dies
> eine Abfrage machen?
Nein. Ein Recordset kannst Du nur mit den Move-, Find- oder
Filter-Methoden durchlaufen bzw. durchsuchen, aber keine weitere Abfrage
darauf aufbauen.
Viele Grüße
Michael
- Next message: Peter Fleischer: "Re: MSDataShape geht nicht mehr... -2147467259"
- Previous message: Udo Abel: "Re: MSDataShape geht nicht mehr... -2147467259"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|