Distinctabfrage über Recordset

Bato_Loco

Mitglied
Hallo!

Ich habe ein Recordset welches die Werte von mehreren Spalten von einer Datenbanktabelle beinhaltet.

In den einzelnen Spalten kommen Begriffe wiederholt vor z.B.:

Mars, Mars, Mars, Snickers, Snickers, Bounty, Bounty, Bounty usw.
wie kann ich jetz die Werte nur einmal ausegeben wenn ich nur das Recordset mit den wiederholten Werten besitze und keine weitere Datenbankabfrage machen kann?
Ich will so eine Art Distinct-Abfrage über das Recordset machen.

Ich könnte die Werte z.B. vergleichen aber das ergibt schlussendlich zu viele <if> - Abfragen was performancemässig nicht so toll ist.

Ich danke euch schon im vorraus für euere Antworten.

Gruss

B.L.
 
Hi

wie soll denn das Ergebnis aussehen?

Ein Distinct funktioniert nur, wenn ALLE Werte eines Datensatzes verglichen mit einem anderen gleich sind. Wenn nur einzelne Felder gleich sind, funktioniet ein Distinct oder ein group by nicht.
 
Das ist ja mein Problem.
Ich weiss, dass das nicht funktioniert mit group by oder distinct aber ich möchte das gleiche Ergebnis wie bei diesen Befehlen erhalten.
Ich kann keine weiteren SQL-Abfragen machen sondern erhalte einfach von einer komplizierten Abfrage über mehrere Tabellen ein RecordSet. Das ist das einzige was mir zu Verügung steht.
Jetzt hat es in diesem RecordSet mehrmals die gleichen Werte diese will ich herausfiltern, so dass ein Wert welcher mehrmals vorkommt, nur einmal angezeigt wird. (like distinct)

Gruss

B.L.
 
Hi

wie soll denn die Ausgabe sein?

ungefähr so?

snickers
max
Leo
Peter

Mars
Michael
Stephan
Willi
 
Eine solche Ausgabe ist meines Wissen mit Access nicht zu realisieren, zumindest nicht über die SQL allein.

Das wirst Du im ASP-Script lösen müssen.

Wichtig ist aber, dass die SQL nach dem Feld sortiert wird, welches nur einmalig ausgegeben werden soll (order by feld)

In der Schleife fragst Du eine Variable ab und vergleichst diese solang mit dem Feld, bis dieses einen anderen Wert bekommt.

Code:
dim strVar
while not rs.eof
if strVar = "" or strVar <> rs("feld") then
	Response.write "<b>" & rs("feld") & "</b><br>"
	strVar = rs("feld")
end if
	Response.write rs("andereFelder")
rs.movenext
wend
[..]
 
Das habe ich mir gedacht.
Danke so geht es. Ich brauche dann einfach immer wieder die <if>-Überprüfungen, da ich mehrmals Werte auslesen muss die mehrmals vorkommen.
In dem Fall gibt es keine andere Lösung.

Grüsse

B.L.
 
Das "Problem" dabei ist, dass ich eine Auswahl Maske besitze - d.h. wenn erst wenn ich z.B. Snickers ausgewählt habe wird di nächste Überprpüfung gemacht und die dazugehörenden Werte angezeigt.
 

Neue Beiträge

Zurück