bademeister: Berechnung einer Totalrangliste aus zwei Einzelranglisten

Hallo zusammen.

Ich habe zwei Ranglisten und eine Totalrangliste.
In der Totalrangliste sollten die Rangpunkte jedes Spielers aus den zwei Einzelranglisten zusammengezählt werden.

Nun wie mache ich das nun mit SQL und ASP das am einfachsten.

Problem:
Bei 1000 Einträgen, muss man zuerst den Rang finden in der ersten Rangliste. Das ergibt im Maximum schon gesamt 1000*1000 Rechenabfragen.
Bei zwei Spielen wären wir schon auf 2 Millionen Abfragen.

Gibts nun einen SQL-Befehl oder eine gute Routine die mir das erleichtert.

So in etwa:

SELECT Rangpunkt FROM Rangliste ORDER BY Besterspieler

Damit ich nur noch 1000 Abfragen habe und nicht 1000*1000.

War das irgendwie verständlich?
Gruss Martin

  1. Hi,

    In der Totalrangliste sollten die Rangpunkte jedes Spielers aus den zwei Einzelranglisten zusammengezählt werden.

    Nun wie mache ich das nun mit SQL und ASP das am einfachsten.

    ähm, mit einer Addition der beiden Werte. Zwar unterschlägst Du die wichtigste aller SQL-spezifischen Angaben - das von Dir verwendete DBMS - aber ich bin mir ziemlich sicher, dass auch Deine Datenbank in der Lage ist, zwei Tabellen miteinander zu verknüpfen. Sie ist doch relational, oder?

    Cheatah

    --
    X-Will-Answer-Email: No
    1. ich habs falsch geschrieben:

      1 tabelle mit folgendem inhalt

      username : spiel1 : spiel2 : total

      that's all.

      martin

      1. Hi,

        1 tabelle mit folgendem inhalt

        username : spiel1 : spiel2 : total

        select username, spiel1+spiel2 as s from tabelle order by s;

        Die Spalte total ist überflüssig, da sie sich ja immer aus der Summe der beiden anderen Werte ergibt...

        Also genau 1 SQL-Abfrage, nicht 2 Millionen...

        cu,
        Andreas

        1. Lieber Andreas

          Leider zähle ich nicht die Punkte der Spiele zusammen, sondern die Rangpunkte. Also ich muss ja zuerst wissen, auf welchem Rang ein Spieler steht und erst danach kann ich diese Zusammenzählen.

          Gruss Martin

          1. Hi,

            Leider zähle ich nicht die Punkte der Spiele zusammen, sondern die Rangpunkte. Also ich muss ja zuerst wissen, auf welchem Rang ein Spieler steht und erst danach kann ich diese Zusammenzählen.

            SELECT rangliste1.spieler, rangliste1.punkte+rangliste2.punkte FROM
            (SELECT ...) AS rangliste1,
            (SELECT ...) AS rangliste2
            WHERE rangliste1.spieler = rangliste2.spieler

            Die beiden inneren Selects sind diejenigen, mit denen Du die Rangpunkte ermittelst. Eventuell möchtest Du aus der Where-Bedingung noch einen Outer Join machen.

            Cheatah

            --
            X-Will-Answer-Email: No