---
title: "Sorteringsproblem"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/62244-sorteringsproblem"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Koggen"
published: "2002-12-15T11:09:45.000Z"
updated: "2002-12-16T09:06:13.000Z"
replies: 2
views: 244
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/62244-sorteringsproblem"
---

# Sorteringsproblem

## #1 — Koggen, 2002-12-15T11:09Z

Hej
Jag har ett problem jag brottats med länge nu:

Jag har två tabeller - betalning och person. Jag vill lista alla personer vars id finns i båda tabellerna, och har det sökta årtalet i fältet regyear i tabellen betalning. 

Jag kunna sortera listan efter id, efternamn, fornamn, stad och land (dom uppgifterna finns i tabellen person).

Problemet är att när den andra SQL-satsen (som hämtar från tabellen person) körs finns bara EN aktuell post, och därför blir sortering rätt enkel ;-)  Jag har provat många olika varianter, men det funkar inte hur jag än gör.

Hoppas ni fattar vad jag menar, det är rätt svårt att förklara 
 :l 

'''''''''''''''
'Kod:

SQLbet = "SELECT \* from betalning WHERE regyear = '" & request.form("regyear") & "'"

Set RecSetbet = CreateObject("ADODB.Recordset")
recSetbet.open SQLbet, Connect,1 , 2

' Om inga poster hittas
if recSetbet.eof then
response.write "\<h3\>Inga poster hittades.\</h3\>"

else
%\>
\<table width="650" border="0" cellpadding="0" cellspacing="0"\>
\<tr\>
\<td\>ID\</td\>
\<td\>Förnamn\</td\>
\<td\>Efternamn\</td\>
\<td\>Ort\</td\>
\<td\>Land\</td\>
\</tr\>

\<%
' Om poster hittas så körs loopen
i = 0
do until recSetbet.eof
SQLpers = "SELECT \* FROM person WHERE id = " & recSetbet("id") & " ORDER BY " & request.form("sortering")  
Set RecSetpers = CreateObject("ADODB.Recordset")
recSetpers.open SQLpers, Connect, 1, 2

' \*\*\* Här ges varannan rad i listan annan färg \*\*\*
i=i+1
if i mod 2=0 then
farg = " bgcolor='#F0F0F0'"
javafarg = "'#F0F0F0'"
else
farg = " bgcolor='#E4E4E4'"
javafarg = "'#E4E4E4'"
end if

do until recSetpers.eof
%\>
\<tr onMouseOut="this.bgColor=\<%=javafarg%\>" onMouseOver="this.bgColor='#FFFFFF'"\<%=farg%\>"\>
\<td\>\<%=recSetpers("id")%\>\</td\>
\<td\>\<%=recSetpers("fornamn")%\>\</td\>
\<td\>\<%=recSetpers("efternamn")%\>\</td\>
\<td\>\<%=recSetpers("stad")%\>\</td\>
\<td\>\<%=recSetpers("land")%\>\</td\>
\</tr\>

\<%
recSetpers.moveNext
loop

recSetbet.moveNext
loop
%\>
\</table\>
\<%
end if
%\>

Permalänk: https://www.webforum.nu/p/62244

## #2 — OveRRidE, 2002-12-15T12:47Z

Gör en INNER JOIN, du skall aldrig nästla recordset. Jag bytte även ut din gamla andra recordset-loop och satte det nya recordset:et (recSetbet) där det gamla var. Kanske borde du även överväga att använda execute istället för open med de där konstanterna. :) Jag stängde även connect och ditt recordset längst ner i koden. 

```
[red]SQLbet = "SELECT * FROM betalning b INNER JOIN person p ON b.id = p.id WHERE" & _
"b.regyear = '" & request.form("regyear") & "' ORDER BY p.id, p.efternamn, p.fornamn, p.stad, p.land"[/red]

Set RecSetbet = CreateObject("ADODB.Recordset") 
recSetbet.open SQLbet, Connect,1 , 2 

' Om inga poster hittas 
if recSetbet.eof then 
response.write "<h3>Inga poster hittades.</h3>" 

else 
%> 
<table width="650" border="0" cellpadding="0" cellspacing="0"> 
<tr> 
<td>ID</td> 
<td>Förnamn</td> 
<td>Efternamn</td> 
<td>Ort</td> 
<td>Land</td> 
</tr> 

<% 
' Om poster hittas så körs loopen 
i = 0 
do until recSetbet.eof 

' *** Här ges varannan rad i listan annan färg *** 
i=i+1 
if i mod 2=0 then 
farg = " bgcolor='#F0F0F0'" 
javafarg = "'#F0F0F0'" 
else 
farg = " bgcolor='#E4E4E4'" 
javafarg = "'#E4E4E4'" 
end if 

do until recSetbet.eof 
%> 
<tr onMouseOut="this.bgColor=<%=javafarg%>" onMouseOver="this.bgColor='#FFFFFF'"<%=farg%>"> 
[red]<td><%=recSetbet("id")%></td> 
<td><%=recSetbet("fornamn")%></td> 
<td><%=recSetbet("efternamn")%></td> 
<td><%=recSetbet("stad")%></td> 
<td><%=recSetbet("land")%></td> [/red]
</tr> 

<% 
recSetbet.moveNext 
loop 
%> 
</table> 
<% 
end if 

[red]set recSetbet = nothing
set connect = nothing[/red]
%>
```

Permalänk: https://www.webforum.nu/p/886078

## #3 — Koggen, 2002-12-16T09:06Z

Tack

Tackar för SQL-hjälpen :-)
Nu funkar det som jag vill.

Permalänk: https://www.webforum.nu/p/886532

---

Tråden på webben: https://www.webforum.nu/amne/asp/62244-sorteringsproblem
