![]() |
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:
geht es nicht.
select distinct RechNr, ID from tabelle
Wer hat eine Idee? |
Re: Problem mit distinct
hallo rolf!
rein aus dem bauch heraus würde ich es so versuchen:
Delphi-Quellcode:
alle angaben ohne gewähr ;)
select distinct RechNr, distinct ID from tabelle
mfg, stefan |
Re: Problem mit distinct
Hi Stefan,
leider nicht. :shock: |
Re: Problem mit distinct
Vielleicht so:
SQL-Code:
Sorry, ist nur geraten :cat:
SELECT (DISTINCT rechnr), (DISTINCT ID) FROM table
|
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:
... tut irgendwie weh ;)
SELECT distinct RechNr, distinct ...
|
Re: Problem mit distinct
Liste der Anhänge anzeigen (Anzahl: 1)
Habe ich auch gedacht.
Aber das Ergebnis siehe Bild. :gruebel: |
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? |
Re: Problem mit distinct
ja genau :hi:
|
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:
Viele Grüße
select RechNr
from tabelle group by RechNr having count(*) = 1 Markus |
Re: Problem mit distinct
Zitat:
Du gruppierst nach RechNr. Da du nur RechNr auswählst entspricht es exakt einem...
SQL-Code:
...oder...
SELECT Distinct RechNr
FROM tabelle
SQL-Code:
Das zusätzlich Count(*) = 1 in der HAVING Clause erfordert doch nur unnötigerweise einen weiteren Durchlauf der Daten.
SELECT RechNr
FROM tabelle GROUP BY RechNr |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:03 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