Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Doppelte Einträge in DBGrid (https://www.delphipraxis.net/62568-doppelte-eintraege-dbgrid.html)

mlspider 6. Feb 2006 16:23

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

Doppelte Einträge in DBGrid
 
Hallo,

mein DBGrid beinhaltet mehrere gleiche Datensätze nach einer Suchabfrage, sowie ich eine weitere Tabelle namens Kunden.db in die Afrage mit einbeziehe.

Hier ist die Welt noch in Ordnung:

SQL-Code:
Memo1.Text:='SELECT *  FROM rechnungen WHERE datum BETWEEN '+''''+DateToStr(DateTimePicker1.Date)+''''+' AND '+''''+DateToStr(DateTimePicker2.Date)+''''+' ORDER BY datum';

Hier nicht mehr:

SQL-Code:
Memo1.Text:='SELECT *  FROM rechnungen, kunden WHERE datum BETWEEN '+''''+DateToStr(DateTimePicker1.Date)+''''+' AND '+''''+DateToStr(DateTimePicker2.Date)+''''+' ORDER BY datum';
Aus Kunden lasse ich mir den jeweiligen Kundennamen anzeigen.

Jelly 6. Feb 2006 16:29

Re: Doppelte Einträge in DBGrid
 
Das ist ganz normal. Bei deiner Abfrage kriegst du bei z.B. 100 Kunden à 10 Rechnungen jeder exakt 100*10=1000 Records geliefert, nämlich jede erdenkbare Kombination. Deshalb musst Du dein Select Befehl noch durch ein Join erweitern, um alle die Rechnungen rauszufiltern, die nicht zu einem Kunden gehören.

Delphi-Quellcode:
Memo1.Text:='SELECT r.*, k.Name FROM rechnungen r join kunden k on r.Kunde=k.ID WHERE datum BETWEEN '+''''+DateToStr(DateTimePicker1.Date)+''''+' AND '+''''+DateToStr(DateTimePicker2.Date)+''''+' ORDER BY datum';
Dabei geh ich aus, dass Du in der Rechnungen Tabelle eine Spalte "Kunde" mit einem Verweis auf den Kunden hast, mit dem eindeutigen Schlüssel ID.

mlspider 6. Feb 2006 16:42

Re: Doppelte Einträge in DBGrid
 
OK, es klappt. Danke.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:22 Uhr.

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