Anzahl von unterschiedlichen Werten in einer DB auslesen.

Ich speichere bestimmte Werte in einer Datenbank, die auch öfters vorkommen. Wie kann ich mir die Anzahl der *unterschiedlichen* Werte anzeigen lassen. D.h. ich will nicht die Anzahl von allen Werten, die drin sind, sondern von allen unterschiedlichen Werten. Es ist egal, ob ein Wert einmal, oder tausendmal vorkommt, wichtig ist, das mir angezeigt wird, DASS er vorkommt.

Wie ich mir eine Anzahl anzeigen lasse ist mir schon klar. Mir geht es um das definieren, das ich unterschiedliche Werte will.
Ich habe also praktisch schon alles, ausser die Definition:
Code:
select count(*) as 'Anzahl' from [Tabelle] where [und jetzt halt - unterschiedlich]



Andere Frage

Wie lese ich aus einer Datenbank bestimmte Werte zwischen 2 Daten aus? Ich hab jeweils ein Start, und ein Enddatum durch ein Request.Form("startdate")/("enddate") gegeben. Die Werte sind Datumswerte.
Ich habe also mein SQLString:
[Ich habe als Sicherheit noch mal extra Variablen, startdate und enddate mit den CDate(Request.Form("startdate")) und enddate gefüllt:
Code:
select ID [blablabla] from Events where datume > '"&startdate&"' and datume < '"&enddate&"' order by datume, Uhrzeit

Ich bekomme jedesmal einen Fehler, auch wenn ich den Code testweise in where datume = '"& Request.Form("startdate") &"' ändere, um nur ein Event auszulesen. Das einzige, was funktioniert, ist, wenn ich datume like '"& Request.Form("startdate") &"' nehme. However - das ist nicht, was ich brauche. Ich brauche ein where datume between '"& Request.Form("startdate") &"' and '"& Request.Form("enddate") &"'.
Ideen?
 
Zuletzt bearbeitet:
Hi

zu Frage 1:

select count(wert) as anzahl, wert from tabelle group by wert

zu Frage 2:

welche Datenbank?
Wenn Access, dann machte er das Datum im Format #mm/dd/yyyy# haben.
 
Zu erstens (alle Einträge zählen): Also zur Zeit bekomme ich da immer noch unplausible (meiner Meinung nach zu kleine) Werte. Machen überhaupt keinen Sinn. Ich hab schon jegliche Kombinationen versucht - keine Ahnung, alles nicht gerade nützliche Werte, die dabei rauskommen.

Ums vielleicht nochmal zu beschreiben: Ich habe eine Tabelle, wo eine Spalte öfters den gleichen Eintrag haben kann. Ich will jetzt aber die Anzahl ALLER Einträge, wobei gleiche Einträge nur einmal gezählt werden und NICHT so oft, wie sie vorkommen.
 
iss oft schwierig mit dem Erklären und auch mit dem Verstehen. Gerade bei solchen Sachen ist es immer besser, man dokumentiert eine kleine Tabelle und schreibt, wie die Ausgabe sein soll.

bsp. Tabelle

id.....spalte(mehrmals)
_____________________________

1....test
2....test
3....test1
4....test2
5....test2
6....test3

Die normale Abfrage über den count würde Dir 6 liefern.

u.g. Abfrage liefert Dir die Zahl 4, da im Subselect der Wherebedingung nur die höchste ID gelesen wird im Vergleich a.spalte mit b.spalte

SELECT count(spalte) as anzahl
FROM tabelle AS a
WHERE ID = (select max(ID) from tabelle as b where a.spalte=b.spalte);
 
Ok, ok, ich seh das Verständnisproblem schon ;) :

Tabelle ist folgende:

ID . Eintrag
1 . test
2 . test
3 . test1
4 . test1
5 . test2
6 . test3
7 . test3
8 . test4
9 . test5

so, i ist jetzt mal der Zähler:
test kommt (zwar öfters, aber generell) vor, also mitzählen => i = 1
test1 kommt auch vor, i = 2
test2 kommt vor, i = 3
test3 kommt vor, i = 4
test4 kommt vor, i = 5
test5 kommt vor, i = 6.
Ich hab 6 Unterschiedliche 'test's, also ist i am Ende 6.

EGAL wie oft jedes Element vorkommt, ich will, das es mitgezählt wird. Doppelete/Mehrfache Einträge eines Elements dürfen, egal wie oft sie vorkommen, nur einmal gezählt werden.
 
und...welches Ergebnis möchtest Du jetzt aus Deinem geposteten Beipiel erzielten? 6? Hast du es mit meinem Beispiel probiert? Dies würde Dir nämlich 6 liefern.
 

Neue Beiträge

Zurück