Ich w�rde das ganze in einer Stored Procedure erst in eine tempor�re Tabelle packen, bevor ich 3 aml die selbe Abrage mach, deshalb die Frage nach SQL Server
create proc Standpunkt (@AktuelleStammid int) as set nocount on create table #Auswertung (AvgSchulnote int, Leistungsbeschreibung varchar(255), StammID int, AnzSchulnote int, ShopURL varchar(255), Kategorie int, Familie int, klasse int) Select INTO #Auswertung ( SELECT Avg(Bewertungen.Schulnote) AS Schulnote, stamm.Leistungsbeschreibung, Bewertungen.stammid, Count(Bewertungen.Schulnote) AS AnzSchulnote, stamm.ShopUrl, stamm.Shopname, stamm.Kategorie, Kategorien.Familie, Kategorien.Klasse FROM (Bewertungen INNER JOIN stamm ON Bewertungen.stammid = stamm.ID1) INNER JOIN Kategorien ON stamm.Kategorie = Kategorien.ID GROUP BY stamm.Leistungsbeschreibung, Bewertungen.stammid, stamm.ShopUrl, stamm.Shopname, stamm.Kategorie, Kategorien.Familie, Kategorien.Klasse HAVING (((Count([Bewertungen]![Schulnote]))>1)) ORDER BY Avg(Bewertungen.Schulnote)) Danach kannst du mit #Auswertung in der Stored Procedure arbeiten Wobei ich hier meine Syntax irgendwie leichter zu durchschauen finde. Aber das mag subjektiv sein. Andreas Roth -------------------------------------- [EMAIL PROTECTED] *jetzt mit Chat* http://www.EuphoriasChild.DarkTech.org -------------------------------------- > -----Urspr�ngliche Nachricht----- > Von: Joachim van de Bruck [mailto:[EMAIL PROTECTED]] > Gesendet: Donnerstag, 24. Januar 2002 23:18 > An: ASP Datenbankprogrammierung > Betreff: [aspdedatabase] AW: Pos innerhalb einer Datensatzgruppe > > > Hallo! > > > Tja, aber die SQL-Abfrage generiert mittels AVG etc. zuerst das > komplette > > Ranking, > > ich mu� ja wissen wieviel Platzierungen es im Ranking gibt. > > Das ist kein Hindernis. ;-) > > > > > > > Set objRecordset = Server.CreateObject("ADODB.Recordset") > > > > jrs.Open strSQLQuery, objeconnection , 3, 3 > > > > > > Warum Schreibrechte? Reicht adLockReadOnly nicht aus? > > > > > > > Das wei� ich auch nicht. Komme eben damit problemlos klar ! :-) > > Die erste "3" hei�t eigentlich "adOpenStatic" und ist hier v�llig okay. > Die zweite "3" hei�t "adLockOptimistic" und 1 (adLockReadOnly) reicht > zum Lesen v�llig aus. > > > > > jrs.move (posdat - 10) ' Cursor auf 10 zur�ck setzen > > > > > > Das bewegt den Cursor um 155 Zeilen nach vorne. ;-) > > > > > > Ich Hirnie, an so nem Ding knapper ich ewig rum..... (Im Erdboden > versink !) > > Hatte zur Sicherheit noch mal im Handbuch nachgeschaut, weil ich zuletzt > vor 5 Jahren in Recordsets herumgemoved bin (heute kenne ich nur noch > "MoveNext"). ;-) > > > > Ich w�rde den eigenen Datensatz suchen und dann die 10 davor und > danach > > > mit union einbinden. Dann kannst Du sogar direkt den > ForwardOnly-Cursor > > > verwenden. > > > > Tja, aber den kriege ich eben nicht raus, den wievielten Platz > derjenige > > im kompletten Ranking belegt. > > Zun�chst eine Abfrage machen, die das Ranking bestimmt (egal, ob mit AVG > oder sonst etwas. Das Sortierkriterium ggf. indizieren, die Abfrage aber > nicht direkt sortieren). Der Rang steht dann in einem berechneten Feld. > So kannst Du beliebige berechnete oder referenzierte Felder hinzuf�gen. > Diese Abfrage kannst Du dann k�nftig wie eine Tabelle benutzen: > order by ... > > Ranglisten werden doch sehr h�ufig abgefragt. Da kann also Speed nicht > schaden, oder? > > Freundliche Gr��e > Joachim van de Bruck > > > > > Jetzt funzt�s auf jeden Fall, lag am move(-10). > > Das reicht mir nicht. ;-) > > > > > | [aspdedatabase] als [EMAIL PROTECTED] subscribed > | http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv > | Sie k�nnen sich unter folgender URL an- und abmelden: > | http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp | [aspdedatabase] als [email protected] subscribed | http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv | Sie k�nnen sich unter folgender URL an- und abmelden: | http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp
