Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Problem mit distinct (https://www.delphipraxis.net/19918-problem-mit-distinct.html)

Rolf Rostig 10. Apr 2004 20:51


Problem mit distinct
 
Hallo,

ich habe eine FB-Tabelle mit den Feldern ID, RechNr, KundenNr, ArikelNr.
Leider mit doppelten Einträgen der Rechnr und KundenNr.
Nun soll nur die ID und RechNr ohne Duplikate ausgegeben werden.
Mit

SQL-Code:
select distinct RechNr, ID from tabelle
geht es nicht.
Wer hat eine Idee?

grayfox 10. Apr 2004 21:10

Re: Problem mit distinct
 
hallo rolf!

rein aus dem bauch heraus würde ich es so versuchen:
Delphi-Quellcode:
select distinct RechNr, distinct ID from tabelle
alle angaben ohne gewähr ;)

mfg, stefan

Rolf Rostig 10. Apr 2004 21:23

Re: Problem mit distinct
 
Hi Stefan,

leider nicht. :shock:

Chewie 10. Apr 2004 21:39

Re: Problem mit distinct
 
Vielleicht so:

SQL-Code:
SELECT (DISTINCT rechnr), (DISTINCT ID) FROM table
Sorry, ist nur geraten :cat:

Robert_G 10. Apr 2004 23:04

Re: Problem mit distinct
 
Dein Code ist doch vollkommen richtig.
Mit Distinct sorgst du dafür, dass jede Zeile nur einmal vorkommt. Es werden werden also keine doppelten Paare von RechNr & ID ausgegeben.

p.s.:
SQL-Code:
SELECT distinct RechNr, distinct ...
... tut irgendwie weh ;)

Rolf Rostig 11. Apr 2004 11:37

Re: Problem mit distinct
 
Liste der Anhänge anzeigen (Anzahl: 1)
Habe ich auch gedacht.
Aber das Ergebnis siehe Bild. :gruebel:

Sharky 11. Apr 2004 11:45

Re: Problem mit distinct
 
Hai Rolf Rostig,

mit distinct wird doch nur verhindert das doppelte Einträge angezeit werden. in deiner Liste gibt es aber keine doppelten paare von RechNr, ID.

Wenn ich dich richtig verstehe möchtest Du ja eine Abfrage die alle RechNr anzeigt die genau einmal in der Tabelle vergeben sind oder?

Rolf Rostig 11. Apr 2004 11:52

Re: Problem mit distinct
 
ja genau :hi:

MarkusB 11. Apr 2004 12:57

Re: Problem mit distinct
 
Hallo Rolf!

Ist das Feld "ID" auch der Primär-Key in Deiner Tabelle?

Wenn ja (was ich auch vermute), dann hat die Klausel "DISTINCT" keine Wirkung in Deiner Abfrage, weil "ID" schon per Definition eindeutig ist (es können keine doppelten Einträge von ID existieren). Deshalb können auch keine doppelten Paare von "RechNr" und "ID" vorkommen.

Wenn Du alle RechNr selektieren willst, die in deiner Tabelle nur genau einmal vorkommen, solltest Du die "GROUP BY" und "HAVING" Klausel verwenden.
Ich würde das etwa so machen:

SQL-Code:
select RechNr
from tabelle
group by RechNr
having count(*) = 1
Viele Grüße
Markus

Robert_G 11. Apr 2004 20:27

Re: Problem mit distinct
 
Zitat:

SQL-Code:
select RechNr
from tabelle
group by RechNr
having count(*) = 1

Markus, hast du dir genau überlegt, was der Code macht?
Du gruppierst nach RechNr. Da du nur RechNr auswählst entspricht es exakt einem...
SQL-Code:
SELECT Distinct RechNr
FROM  tabelle
...oder...
SQL-Code:
SELECT RechNr
FROM  tabelle
GROUP BY RechNr
Das zusätzlich Count(*) = 1 in der HAVING Clause erfordert doch nur unnötigerweise einen weiteren Durchlauf der Daten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:02 Uhr.
Seite 1 von 2  1 2      

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