Altså i ASP til præsentation på en webside. Runes svar giver dig en template til en SQL forespørgsel som du kan bruge. Eller hvis du hellere vil have et fuldt eksempel må du lige sende enten databasen eller i det mindste databaselayoutet (tabeller, kolonner, datatyper mv) til enten Rune eller mig.
strSQL = "Select * From Bruger Order by Kroner Desc"
Den skal laves om så den ser sådan her ud.:
SQL = "SELECT bruger.brugerID, Sum(ikkeafgjortbets.Indsats)+bruger.kroner AS summen FROM bruger LEFT JOIN ikkeafgjortbets ON bruger.BrugerID = ikkeafgjortbets.BrugerID GROUP BY bruger.brugerID, ikkeafgjortbets.Indsats,bruger.kroner ORDER BY Sum(ikkeafgjortbets.Indsats)+bruger.kroner DESC;"
Jeg har skrevet SQL det skal være strSQL sådan her:
strSQL = "SELECT bruger.brugerID, Sum(ikkeafgjortbets.Indsats)+bruger.kroner AS summen FROM bruger LEFT JOIN ikkeafgjortbets ON bruger.BrugerID = ikkeafgjortbets.BrugerID GROUP BY bruger.brugerID, ikkeafgjortbets.Indsats,bruger.kroner ORDER BY Sum(ikkeafgjortbets.Indsats)+bruger.kroner DESC;"
Nu har jeg fået det til at virke. Det er fungerer dog stadig ikke helt efter planen... Umiddelbart ser det ud til, at hvis man har mere end et væddemål i gang, så optræder man flere gange på listen.
den her?: strSQL = "SELECT bruger.brugerID, Sum(ikkeafgjortbets.Indsats)+bruger.kroner AS summen FROM bruger LEFT JOIN ikkeafgjortbets ON bruger.BrugerID = ikkeafgjortbets.BrugerID GROUP BY bruger.brugerID, ikkeafgjortbets.Indsats,bruger.kroner ORDER BY Sum(ikkeafgjortbets.Indsats)+bruger.kroner DESC;"
Det er forresten heller ikke alle deltagerne der bliver vist, for i øjeblikket er der 66 tilmeldte, og den viser kun op til 54, og laver en fejl ved den post
Prøv lige at lave SQL som denne, der var vist kommet en kolonne for meget i GROUP BY delen:
strSQL = "SELECT bruger.brugerID, Sum(ikkeafgjortbets.Indsats)+bruger.kroner AS summen FROM bruger LEFT JOIN ikkeafgjortbets ON bruger.BrugerID = ikkeafgjortbets.BrugerID GROUP BY bruger.brugerID, bruger.kroner ORDER BY Sum(ikkeafgjortbets.Indsats)+bruger.kroner DESC;"
Det har jeg sat ind nu. Nu viser den alle brugere, men ved nogle af dem viser den ikke antal kr. de har. Jeg tror det skyldes, at disse brugere ikke har nogen igangværende væddemål. Kan man gøre sådan, at der tages højde for dette?
Jeg kan se problemmet. Den enste måde jeg umiddelbart kan se det løst på er ved at indføre en iif i SQL sætningen da den vil give NULL for dem som ikke har igangværnde væddemål. Og null+xxx giver null. Derfor står der ikke noget resultat.
Så prøv med denne SQL:
strSQL = "SELECT bruger.brugerID, bruger.kroner, Sum(ikkeafgjortbets.Indsats) AS summen FROM bruger left JOIN ikkeafgjortbets ON bruger.BrugerID = ikkeafgjortbets.BrugerID GROUP BY bruger.brugerID, bruger.kroner ORDER BY iif(isNull(Sum(ikkeafgjortbets.Indsats)),0,Sum(ikkeafgjortbets.Indsats))+bruger.kroner DESC;"
Samt at lave disse to linjer kode:
profit = ((rs("summen")-5000)*100)/5000 if len("" & profit) = 0 then profit = 0
Om til dette:
total = rs("kroner") if isNull(rs("summen")) = false then total = total + rs("summen") profit = ((total-5000)*100)/5000 if len("" & profit) = 0 then profit = 0
i=i+1 %> <% total = rs("kroner") if isNull(rs("summen")) = false then total = total + rs("summen") profit = ((total-5000)*100)/5000 if len("" & profit) = 0 then profit = 0%>
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.