Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL Abfrage mit SQL nochmal filtern? (https://www.delphipraxis.net/73551-sql-abfrage-mit-sql-nochmal-filtern.html)

Robert_S6 19. Jul 2006 17:50

Datenbank: Paradox • Version: 7 • Zugriff über: TQuery

SQL Abfrage mit SQL nochmal filtern?
 
Hallo Leute,

ich habe ein Problem mit einer SQL-Abfrage.

Ich habe mir einen Vokabeltrainer programmiert bei dem der User über verschiedene Filteroptionen sein Lernfeld eingrenzen kann. Die Hauptdatenbank in der die ganzen Vokabeln hinterlegt sind ist eine Paradox 7 DB.
Als kleine Übersicht habe ich nun um den Lernfortschritt zu dokumentieren eine TGauge Komponente mit eingebaut. Das Maximum hole ich mir aus der vom User gefilterten SQL Abfrage über RecordCount. Den Fortschritt filtere ich mir in einer extra SQL-Abfrage in der die vom User gemachten Filtereinstellungen auch noch mal extra reingeschrieben werden und zusätzlich filtere ich nur die Datensätze aus, die vom User bereits als gelernt abgehakt wurden. So habe ich eine kleinere Abfrage und hole mir auch wieder über RecordCount meinen Lernfortschritt.
Jetzt hätte ich gern gewusst um nicht jedes Mal die beiden Abfragen mit den kompletten Filterkriterien zu füllen ob es ne Möglichkeit gibt mit z.B. COUNT eine Abfrage auf die User Filtereinstellungen zu machen um herauszubekommen wie viele Datensätze bereits gelernt wurden? :wall:

Vielen Dank für eure Antworten!

mkinzler 19. Jul 2006 17:57

Re: SQL Abfrage mit SQL nochmal filtern?
 
Paradox unterstützt keine Derived Tables. Du kannst höchstens einen lokaeln Filter verwenden.

marabu 19. Jul 2006 18:29

Re: SQL Abfrage mit SQL nochmal filtern?
 
Herzlich willkommen in der Delphi-PRAXiS, Robert.

Ich würde die Filtereinstellungen über die WHERE-Klausel vornehmen und das Statement als Local-SQL VIEW speichern. Auf diese Weise lassen sich bestimmte Einstellungen vordefinieren und können namentlich vom Benutzer ausgewählt werden.

Wenn du Basisdaten (Variablem, Kategorien, etc.) und Prozessdaten ("abgehakt") voneinander getrennt speicherst und für die Prozessdaten eine Sitzungsnummer mitführst, dann kannst du deine Auswertung mit einem einfachen SELECT erhalten:

SQL-Code:
SELECT COUNT(*) FROM Sitzungen WHERE Nummer = :Sitzungsnummer
Freundliche Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:34 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