Hallo,<br>mit einer TQuery jage ich eine SQL-Abfrage auf eine Datenbank. Diese Abfrage berechnet mir auch einige Werte. Jetzt möchte ich mit einer zweiten TQuery auf die Ergebnismenge der ersten TQuery mit Max und Min zugreifen. Wie soll ich das machen ?<br>:-) Jens Schumann
Announcement
Collapse
No announcement yet.
Query auf Query
Collapse
X
-
Hallo,
bei derartigen Fragen ist es sehr wichtig, die verwendete Datenbank zu nennen. Im Fall einer <b>Paradox</b>-Datenbank kann die TQuery-Abfrage auf eine <b>QBE</b>-Ergebnismenge losgelassen werden:
<pre>
SELECT * FROM "ParadoxView.qbe"
</pre>
Im Fall einer echten SQL-Datenbanken wird ein in der Datenbank abgelegter <b>VIEW</b> über eine zweite SELECT-Abfrage als Sicht-Tabelle verwendet. Alternativ kann auch eine <B>Stored Procedure</b> als "Tabelle" über eine zweite SELECT-Anweisung abgefragt werden:
<pre>
SELECT * FROM GetFirstXKunden(10)
</pre>
-
Hallo Jens,
QBE steht für Query by Example und ist ein - ich würde mal sagen Pendant von Borland zu SQL. Ich kenne nur ein Programm (neben wahrscheinlich Paradox) mit dem man QBE dateien erstellen kann und das ist die Datenbankoberfläche von Borland (war oder ist? im Lieferumfang von Delphi). Die Dateien haben z.B. folgendes Format:
Query<br>
ANSWER: :PRIVAT:ANTWORT.DB<br>
<br>
:Alias1:Tabelle1 | Feld1 | Feld2 | Feld3 |<br>
| _Verbindung1 | | | <br>
<br>
:Alias2:Tabelle2 | Feld1 | Feld2 | Feld3 | <br>
| _Verbindung1 | | Bedingung1 | <br>
<br>
EndQuery<br>
für :<br>
select Tabelle1.Feld1, Tabelle1.Feld2, Tabelle1.Feld3,
Tabelle2.Feld1, Tabelle2.Feld2, Tabelle2.Feld3 from Tabelle1 inner join Tabelle2 on Tabelle1.Feld1=Tabelle2.Feld1 where Tabelle2.Feld3=Bedingung1
Alles Klar ;-Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.
Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!
Comment
-
Hallo Jens,
zu versuchen eine QBE-Datei mit einem ASCII-Editor zu programmieren ist sicherlich keine gute Idee. Wenn Du eine solche Datei mit einem Programm (Paradox, DB-Oberfläche) erstellen kannst, dann kannst Du diese (bzw. deren Resultat) bei einem SQL-Zugriff über die BDE wie eine Tabelle ansprechen. Die Datei muß dabei in dem Verzeichnis liegen auf das der BDE-Alias zeigt.
Das ganze ist also die Realisierung einer View für Desktopdatenbanken durch die BDE.
Gruß FalWenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.
Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!
Comment
-
Hallo,
bei ACCESS handelt es sich <b>nicht</b> um eine SQL-Datenbank, so dass alle SQL-Abfragen simuliert werden müssen. Daher ist es effektiver, alle Datensätze der ersten TQuery-Abfrage vor Ort in einer Schleife durchzugehen, um "von Hand" nach dem MIN/MAX-Wert zu suchen.
Eine QBE-Datei macht nur bei Paradox bzw. dem direkten Zugriff über die BDE Sinn
Comment
-
Hallo,<br>ich habe das Problem inzwischen mit TBatchmove gelöst. Da meine Anwendung die BDE und DAO verwendet, läuft die Sache ganz gut. Das speichern der Query mit TBatchmove geht, entgegen meinen Erwartungen, sehr schnell. Sogar wesentlich schneller als die darauf folgende Min/Max Suche. Eine "feste Verdrahtung" der SQL-Abfrage kommt nicht in Frage, weil der Anwender sich seine SQL-Anweisung zusammen klickt.<br>Es handelt sich um eine Anwendung zur kartographischen Visuialisierung soziodemografischen und firmeninternen Daten. Diese Daten kann der Anwender frei miteinander verknüpfen. Das beduetet, die SQL-Abfrage ist immer wieder anders.<bR> :-) Jens Schuman
Comment
Comment