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

Antwort per Email an