8.3k Aufrufe
Gefragt in Datenbanken von
Hallo,

ich hoffe euch geht es gut... Ich glaube das Problem wird für euch ein Einfaches sein. :-)

Ich habe Datensätze (paar Tausend Stück). Diese Datensätze möchte ich zählen, aber nur jeden Datensatz mit der Kundennummer einmal aufgezeigt bekommen.

Also Die Duplikate bei Kundennummer raus.

Vielen Dank für eure Hilfe

Viele Grüße

Franki82

5 Antworten

0 Punkte
Beantwortet von kjg17 Profi (34.4k Punkte)
Hallo Franki,

erstelle über diese Tabelle eine Abfrage mit dem Abfrageassistenten.

In dieser Abfrage legts du fest, dass nach dem Feld mit der Kunden-Nummer gruppiert werden soll. Bei den anderen Feldern musst du sehen, was du davon wie benötigst. Bei reinen Textfeldern, wie z.B. Namen und Adressen wird der Text des ersten gefundenen Datensatzees angezeigt. Für Datums-Angaben wie z.B. Lieferdaten kannst du festlegen, ob der höchste (letzte) oder niedrigste (älteste) ausgegeben werden soll. Umsatzzahlen kannst du z.B. summieren lassen usw. Du kannst auch festlegen, dass die Anzahl der jeweils gruppierte Datensätze angezeigt wird, und bestimmte Felder für die Abrage abwählen.

Wenn du dich mit dem Aissistenten etwas vertan hast, kannst du jederzeit in der Erntwurfsansicht der Abfrage entsprechende Korrekturen vornehmen.

Ich hoffe, das reicht dir als 'Anregung', es gibt ja auch noch die Hilfe, wo du zu dem o.a. nochmal nachschlagen kannst.

Gruß
Kalle
0 Punkte
Beantwortet von marie Experte (2k Punkte)
Hallo Franki, ich weiss nicht genau ob Du nur die Zahl brauchst oder ob es genügt die Kundennummern angezeigt zu bekommen und die anzahl der datensätze selbst abzulesen. beides in einer Abfrage geht ja nicht. Du kannst das aber in zwei Abfragen machen.

Wie Kalle schon sagte: gruppieren.
SELECT DeineTabelle.Kundennummer
FROM DeineTabelle
GROUP BY DeineTabelle.Kundennummer
ORDER BY DeineTabelle.Kundennummer;
zeigt Dir alle Kundennummern aufsteigend sortiert an. Die Anzahl kannst Du dann in der seitenansicht ablesen. Du kannst aber auch diese Abfrage speichern, zum beispiel unter dem Namen "qrykunden" und dann auf diese Abfrage eine neue Abfrage setzen, um Dir nur die Anzahl der Kunden anzeigen zu lassen:
SELECT Count(Kundennummer) AS [Anzahl von Kundennummer]
FROM qryKunden;


gruß marie
0 Punkte
Beantwortet von rahi Experte (1.4k Punkte)
Hallo marie,

deine Lösung ist gut. Deine Aussage
ich weiss nicht genau ob Du nur die Zahl brauchst oder ob es genügt die Kundennummern angezeigt zu bekommen und die anzahl der datensätze selbst abzulesen. beides in einer Abfrage geht ja nicht.

hat mich nicht in Ruhe gelassen. Ich arbeite die meiste Zeit mit Oracle, da sind diese Zählugen in einer Abfrage zu machen eigentlich an der Tagesordnung. Ich hab's probiert, es geht auch in Access
SELECT Count(*) AS anzahl
FROM [SELECT distinct Kundennummer
FROM DeineTabelle]. AS t1;

Eine seltsame Syntax, aber bei mir funktioniert die Abfrage (Access 2003). Ohne den Punkt hinter der schließenden Klammer funktioniert es übrigens nicht. Mit runden Klammern funktioniert es in der SQL-Ansicht, sobald die Abfrage gespeichert wird, verhunzt Microsoft die Abfrage und kann nicht mehr ausgeführt werden. Aber das ist ja nicht die einzige Stelle, wo es bei Access Probleme gibt.

Gruß
Ralf
0 Punkte
Beantwortet von rahi Experte (1.4k Punkte)
Hallo marie, Hallo Franki82

noch'n Nachtrag. Falls die Tabelle einen eindeutigen Schlüssel (in meinem Bsp ID) hat, könnte die Abfrage auch
SELECT Count(Kundennummer) AS Anzahl
FROM DeineTabelle
where id in (SELECT min(id) FROM DeineTabelle group by kundennummer)

lauten. - Und einen eindeutigen Schlüssel sollte jede gute Tabelle haben.

Liege zur Zeit krank im Bett, da hat man Zeit für viele Ideen ;-)

Gruß
Ralf
0 Punkte
Beantwortet von marie Experte (2k Punkte)
:-))

Gute besserung

Marie
...