A Air4s1 Medlem sedan dec. 2001 8 inlägg Trådstart 5 dec. 2001 21:24 #1 Kan man på ett enkelt sätt välja ut pos. 1 & 2 i en röstningstabell som är inner joinad ?
Ser ut som följer:
strSQL5 = "SELECT r.Id , r.LagID, r.AntalRoster, " & _
"b.Id , b.Lag " & _
"FROM LagRost r " & _
"INNER JOIN Lag b " & _
"ON b.Id = r.LagID " & _
"ORDER BY r.AntalRoster DESC"
Set objRS = Connection.Execute(strSQL5)
If objRS.EOF Then
Response.Write "Finns inga röster ännu!"
Else
intSenastAntalRoster = objRS("AntalRoster")
Do Until objRS.EOF
strNamn = objRS("Lag")
intAntalRoster = objRS("AntalRoster")
IF intSenastAntalRoster \<\> intAntalRoster then exit do
'intProcentRoster = (intAntalRoster/intTotalRoster)\*100.00%\>
\<%
strOP5 = strOP5 & "\<font face=""Verdana"" size=""1"" color=""Black""\>" & strNamn & " "
intSenastAntalRoster = intAntalRoster %\>
\<% k=k+1
objRS.MoveNext
Loop %\>
\<%
End If
objRS.Close
Set objRS = Nothing %\>
L LarsG Medlem sedan dec. 2000 12 464 inlägg strSQL5 = "SELECT top 2 r.Id, r.LagID, r.AntalRoster, " & _
"b.Id, b.Lag " & _
"FROM LagRost r " & _
"INNER JOIN Lag b " & _
"ON b.Id = r.LagID " & _
"ORDER BY r.AntalRoster DESC"
Om det finns flera som har samma antalroster som 2:an så får du alla.
Om du inte vill ha det så så kan du lägga till en kontroll i din loop
antalPoster = 1
Do Until objRS.EOF
strNamn = objRS("Lag")
intAntalRoster = objRS("AntalRoster")
IF intSenastAntalRoster <> intAntalRoster then exit do
'intProcentRoster = (intAntalRoster/intTotalRoster)*100.00%>
<%
strOP5 = strOP5 & "<font face=""Verdana"" size=""1"" color=""Black"">" & strNamn & " "
intSenastAntalRoster = intAntalRoster %>
<% k=k+1
objRS.MoveNext
if antalPoster = 2 then exit do
antalPoster = antalPoster + 1
Loop %>
A Air4s1 Medlem sedan dec. 2001 8 inlägg Tyvärr....funkar inte. Vid Desc sortering får jag med den som har mest röster och vid ASC så blir den i detta fallet tredje med minst antal röster som presenteras....tror jag har testat detta med top 2 redan sorry...fler förslag?
A Air4s1 Medlem sedan dec. 2001 8 inlägg Jag vill alltså kunna visa ettan i ett sql uttryck och 2:an i ett annat!
Tror inte jag nämnde det i tidigare postning!(Sorry)!
L LarsG Medlem sedan dec. 2000 12 464 inlägg Ja, det är ju en helt annan sak.
Det blir besvärligt (inte omöjligt) att få fram det med en sql-sats. (Problemet är att flera personer kan ha samma antal röster.)
Varför måste du ha två olika frågor? Du kan ju hämta de två första i en fråga. och om du inte vill skriva ut båda så är det bara att lagra det värdet tills det är dags. T.ex. kan du använda getrows.