Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#7

AW: Table nach Datum filtern

  Alt 20. Feb 2013, 20:39
Und sich dann wundern wieso die Anwendung so langsam ist. ... Sinnvoll ist es hier sich mit SQL vertraut zu machen.
Ich wollte den TE nicht gleich überfordern.
Eine parametrisierte SQL-Abfrage ist technisch sicher die schnellste und sauberste Lösung.
Wobei, wie viele Mitglieder kann so ein Verein schon haben? Bei < 1000 Mitgliedern ist so ein lokaler Filter kein Problem.

Welche (besseren) Möglichkeiten zum Anlegen der Tabellen gibt es?
Also normalerweise legt man in der Anwendung keine Tabellen an, sondern man gibt eine leere Datenbank, die aber schon alle Tabellen enthält bei der Installation mit der Anwendung mit.
Man sollte die Datenbank so bauen, dass die Struktur der Tabellen, Felder, Views usw. sich möglichst nicht mehr ändert.

Wenn man z.B. Mitgliedsbeträge pro Jahr erfassen möchte, dann legt man nicht für jedes Jahr eine neue Tabelle an, sondern man speichert alles in einer Tabelle:
Code:
MitgliedNr | Jahr | ZahlDatum
==============================
          1| 2012 | 13.01.2012
          2  2012 | 25.02.2012
          3| 2012 | 08.05.2012
          2| 2013 | 19.02.2013
          3| 2013 | 29.12.2012
Wie man sieht hat Mitglied 1 für das Jahr 2013 noch nicht bezahlt.
Wenn man z.B. wissen möchte, wer im aktuellen Jahr noch nicht gezahlt hat, dann muss man die Betragstabelle mit der Mitgliedertabelle verknüpfen.
Spätestens jetzt kommt man nicht drumrum, sich in SQL einzuarbeiten.

SQL-Code:
-- hole alle Datensätze aus der Mitglieds-Tabelle für die es keinen passenden Datensatz
-- in der Betrags-Tabelle gibt und berücksichte dabei nur das Jahr 2013
SELECT MitgliederTable.* FROM
MitgliederTable
WHERE NOT EXISTS (SELECT * FROM BeitragsTable WHERE BeitragsTable.MitgliedsNr=MitgliederTable.MitgliedsNr AND BeitragsTable.Jahr=2013)
  Mit Zitat antworten Zitat