---
title: "Får inte till den här queryn."
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/74650-får-inte-till-den-här-queryn"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "mikul"
published: "2003-04-21T21:06:06.000Z"
updated: "2003-04-21T23:39:18.000Z"
replies: 15
views: 311
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/databaser-sql/74650-får-inte-till-den-här-queryn"
---

# Får inte till den här queryn.

## #1 — mikul, 2003-04-21T21:06Z

Hmm... Lyckas inte lösa det här själv.
Håller på med en sql-fråga för att hämta alla forum i databasen, men den hämtar alla forum lika många gånger som det finns trådar i forumet och det vill jag ju självklart inte.
Har försökt få nån distinct på det men inte lyckats få det rätt.
Kanske nån av er som vet hur det skall lösas.

```
SELECT f.senastesvarav, f.senastesvar, fl.ForumId,
fl.ForumNamn, fl.Information, fl.moderator, u.username
FROM ForumLista AS fl, UserInfo AS u, Forum AS f 
WHERE fl.moderator = u.username and 
f.forumid = fl.forumid and f.svarsid is null 
ORDER BY fl.Forumnamn ASC, f.senastesvar DESC;
```

Säg till om ni behöver se hur tabellerna ser ut.

/ Mikul

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

## #2 — aasah, 2003-04-21T21:15Z

Ja, jag tror det skulle underlätta om man visste hur tabellerna ser ut. Vill du ha ut alla kolumner ur tabellerna eller bara vissa? Jag är inte säker på att jag fattar vad du vill ha fram, för alla forum borde du väl hitta med:

SELECT ForumId, ForumNamn FROM ForumLista;   ?

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

## #3 — mikul, 2003-04-21T21:35Z

Jo men jag skall nämligen skriva ut lite andra saker också, typ vem som är moderator, vem som har gjort senaste svaret osv...

**Forumlista:**
forumid, forumnamn, information, moderator

**Forum:**
Id, forumid(vilket forum tråden/svaret tillhör), rubrik, text, userid(vem som skapat tråden/svaret), datum, svarsid(vilken tråd ett svar tillhör), SenasteSvar(datumet då senaste svaret skapades), SenasteSvarAv(användar idet för den som senast svarade)

**UserInfo:**
Userid, Username, password, mail, info, status(medlem, moderator osv)

SÅ nu kanske det blir lite lättare ;)

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

## #4 — aasah, 2003-04-21T21:50Z

Re: Får inte till den här queryn.

Förstår fortfarande inte: Varför vill du skriva ut moderatorinfon dubbelt?

```
SELECT .... fl.moderator, u.username
FROM ForumLista AS fl, UserInfo AS u, Forum AS f 
WHERE fl.moderator = u.username and ...
```

Alltså fl.moderator = u.username så samma sak skrivs ut dubbelt. Varför? :q

Bättre med:

```
SELECT f.senastesvarav, f.senastesvar, fl.ForumId,
fl.ForumNamn, fl.Information, fl.moderator
FROM ForumLista AS fl, Forum AS f 
WHERE f.forumid = fl.forumid and f.svarsid is null 
ORDER BY fl.Forumnamn ASC, f.senastesvar DESC;
```

Ger det fortfarande fel svar?

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

## #5 — LarsG, 2003-04-21T21:52Z

Du vill alltså ha senaste svar per forum och namnet på den som postade det inlägget?

Och du använder Mysql?

Vill bara veta förutsättningarna.

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

## #6 — mikul, 2003-04-21T21:56Z

Vet inte varör jag har skrivit så om jag skall vara ärlig, är helt körd i hövvet för tillfället...

Det ger dock fortfarande samma svar. :(

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

## #7 — mikul, 2003-04-21T22:02Z

LarsG: Precis, Jag använder dock Access för tillfället ;)

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

## #8 — LarsG, 2003-04-21T22:08Z

Det är en fördel för den typen av frågor klarar inte Mysql av men det går utmärkt i Access.

```
SELECT (select senastesvarav from forum f
  where forumid = fl.forumid
      and senastesvar = (select max(senastesvar) 
     from forum where forumid = f.forumid ),
   (select max(senastesvar) from forum
     where forumid = fl.forumid),
   ForumId,
   ForumNamn, 
   Information, 
   moderator
 FROM ForumLista AS fl  
ORDER BY Forumnamn ASC
```

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

## #9 — mikul, 2003-04-21T22:15Z

Ok..Fick dock det här felet nu.

```
Feltyp:
Microsoft JET Database Engine (0x80040E14)
Missing ), ], or Item in query expression '(select senastesvarav from forum f where forumid = fl.forumid and senastesvar = (select max(senastesvar) from forum where forumid = f.forumid ), (select max(senastesvar) from forum where forumid = fl.forumid), ForumId, ForumNamn, Information, Moderator FR'.
```

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

## #10 — LarsG, 2003-04-21T22:21Z

Jaha, det saknas en parentes. Det är väl inte så svårt att se var?

```
SELECT (select senastesvarav from forum f
  where forumid = fl.forumid
      and senastesvar = (select max(senastesvar) 
     from forum where forumid = f.forumid )),
```

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

## #11 — mikul, 2003-04-21T22:24Z

Nä iof, men jag är så otroligt trött i skallen nu ;)

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

## #12 — mikul, 2003-04-21T22:27Z

Tack så mycket hittils ;)
Men jag vill också ha ut SensasteSvarav i recordsetet, hur skall det se ut då?

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

## #13 — LarsG, 2003-04-21T22:30Z

Du kan använda rs(0) etc eller så namnger du värdet  i frågan

```
SELECT (select senastesvarav from forum f
  where forumid = fl.forumid
      and senastesvar = (select max(senastesvar) 
     from forum where forumid = f.forumid )) as xxx,
```

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

## #14 — mikul, 2003-04-21T22:43Z

Ok, men nu tror jag allt att jag har rört tilld et för mig...
Jag är aldeless för seg i skallen för att kunna lösa det här själv nu. Hoppas att du har lust att hjälpa till lite..

Finns det nåt enklare sätt att lösa det här på:

```
Query ="SELECT (select senastesvarav from forum f where forumid = fl.forumid and senastesvar = (select max(senastesvar) "&_
	"from forum where forumid = f.forumid )), (select max(senastesvar) from forum where forumid = fl.forumid), "&_ 
	"ForumId, ForumNamn, Information, Moderator FROM ForumLista AS fl ORDER BY Forumnamn ASC"	
Set rs = Connect.Execute(Trim(Query))
								
								
If not rs.eof Then
	Response.write 	"<div align=left>"&_
						"<table border=0 cellpadding=5 cellspacing=0 style=border-collapse: collapse bordercolor=#111111 width=100% id=AutoNumber1>"&_
							"<tr>"&_
								"<td valign=top width=""40%"" hight=10>ForumNamn:</td>"&_
								"<td valign=top width=""20%"" hight=10>Antal inlägg:</td>"&_
								"<td valign=top width=""13%"" hight=10>Moderator:</td>"&_
								"<td valign=top width=""22%"" hight=10>Senaste svar:</td>"&_
							"</tr>"
									
									
	While not rs.Eof
							
		Senastid = rs(0)
		forumid = rs("forumid")
										
		Set rs2 = Connect.Execute("SELECT u.username, u.userid, f.forumid, fl.forumid "&_
 			"from Userinfo as u, forumlista as fl, forum as f "&_
			"where u.userid = "& senastid &" and f.forumid = fl.forumid and f.svarsid is null;")
									
		arr = rs2.GetRows()
		strSenasteSvarAv = arr(0,0)
		rs2.close : set rs2 = nothing
										
										
		set Count = Connect.execute("select count(*) from forum where forumid = "& ForumId &";")
		iCount = Count(0)
		Count.close : Set Count = nothing
											
		Response.write 	"<tr>"
		Response.write 		"<td valign=top width=""40%"" hight=10><a href=?cat=forum&forumId="& forumid &"><b>"& rs("ForumNamn") &"</b></a><br>"& rs("information") &"</td>"
		Response.write 		"<td valign=top width=""20%"" hight=10>"& iCount &"</td>"
		Response.write 		"<td valign=top width=""13%"" hight=10>"& rs("moderator") &"</td>"
		Response.write 		"<td valign=top width=""22%"" hight=10>"& strSenasteSvarAv &":<br>"& rs("SenasteSvar") &"</td>"
		Response.write 	"</tr>"
		rs.movenext
	Wend
							
	Response.write 	"</tr></table>"
	rs.close : set rs = Nothing
End if
```

får nämligen:

```
Feltyp:
ADODB.Recordset (0x800A0BCD)
Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
/mikul/forum.asp, line 146
```

på den här queryn:

```
Set rs2 = Connect.Execute("SELECT u.username, u.userid, f.forumid, fl.forumid "&_
	"from Userinfo as u, forumlista as fl, forum as f "&_
	"where u.userid = "& senastid &" and f.forumid = fl.forumid and f.svarsid is null;")
```

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

## #15 — mikul, 2003-04-21T23:19Z

Tack så mycket för hjälpen LarsG!
Lyckades lösa det sista själv nu.

```
Senastid = rs(0)
senastesvar = rs(1)
forumid = rs("forumid")

set Count = Connect.execute("select count(*), (select username from userinfo where userid = "& senastid &") as xxx from forum where forumid = "& ForumId &";")
iCount = Count(0)
senastesvarav = count("xxx")
Count.close : Set Count = nothing
```

Tack åter igen! :D

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

## #16 — m_soderlund, 2003-04-21T23:39Z

> **mikul skrev:**
>
> **arr = rs2.GetRows()**
> strSenasteSvarAv = arr(0,0)
> rs2.close : set rs2 = nothing

Äntligen nån mer än jag som använder GetRows() och visar det! \*Tummen upp\* för mikul!
Hoppas allt löste sig bra.

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/74650-får-inte-till-den-här-queryn
