webForumDet fria alternativet

Joinade tabeller i Access

4 svar · 227 visningar · startad av Air4s1

Air4s1Medlem sedan dec. 20018 inlägg
#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 %\>
LarsGMedlem sedan dec. 200012 464 inlägg
#2
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 %>

------------------
essentitia preter non sans multiplicandum

Air4s1Medlem sedan dec. 20018 inlägg
#3

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?

Air4s1Medlem sedan dec. 20018 inlägg
#4

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)!

LarsGMedlem sedan dec. 200012 464 inlägg
#5

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.

------------------
essentitia preter non sans multiplicandum

131 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)