Autor Beitrag
HolgerB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 91

Win XP
D6 Pers
BeitragVerfasst: Mi 26.03.08 20:48 
Hallo zusammen,

ich beschäftige mich grade mit einer SQL Abfrage um eine Tabelle auszuwerten. Ich möchte ermittel wie viele unterschiedliche Werte sich in einer Spalte befinden. Gibt es dafür einen bestimmten Befehl wie Count?

Hier die genaue Problemstellung:

Ich habe eine Tabelle mit vier Spalten mit Daten für eine Turnieranmeldung.

ID
Name (des Starters)
Klasse (Wettkampfklasse)
Verein

Ich möchte mit einer Abfrage die folgenden drei Spalten füllen:

Klasse (Name der Klasse)
Anzahl (Anzahl der Starter)
Vereine (Anzahl unterschiedlicher Vereine)

So weit bin ich:

ausblenden SQL-Anweisung
1:
SELECT klasse , count(klasse) AS 'Anzahl' FROM test GROUP BY  klasse					


Weiter komme ich nicht.

Könnt Ihr mir helfen?

Gruß
Holger
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: So 30.03.08 14:40 
hmmm, also ich würde das nicht alles in eine Anweisung pressen.

erst würde ich mal durchlaufen und alle verschiedenen Klassen auslesen (Table1.FieldByName usw.

dann würde ich für jede Klasse eine Abfrage erstellen:
ausblenden SQL-Anweisung
1:
SELECT KLASSE FROM test WHERE (KLASSE=gefundeneKlassen[i]);					

einträge im Query mittels Count zählen
=> Liste aller Klassen mit Anzahl an Teilnehmern. Problematischer wirds, wenn Leute mehrmals vorhanden sein könnten

um die verschiedenen Klassen/Vereine zu bekommen, müsste man das wohl über 2 for-Schleifen lösen, was ziemlich schlecht bei großen Datenmengen wird (quadratische Laufzeit).

Soweit mein Gedankenanstoß ^^ geht sicher auch direkt mit SQL, aber da hab ich zu wenig Ahnung von.

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)