---
title: "Syntaxfel"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/79172-syntaxfel"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Bendro"
published: "2003-06-07T22:06:32.000Z"
updated: "2003-06-08T12:28:00.000Z"
replies: 8
views: 201
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/79172-syntaxfel"
---

# Syntaxfel

## #1 — Bendro, 2003-06-07T22:06Z

Behöver hjälp...  :x 

Kan inte MySQL men har på min site ett forum som använder MySQL. Har funkat bra tills jag uppgraderade med ett mod-paket. Det mesta flyter fortfarande helt ok men jag får ett felmeddelande på den här kodsnutten:

```
strSql = "SELECT pmtotal1=(SELECT Count(M_TO) FROM " & strMemberTablePrefix & "MEMBERS M, " & strTablePrefix & "PM P WHERE M.M_NAME = '" & strDBNTUserName & "' AND M.MEMBER_ID = P.M_TO), pmtotal2=(SELECT Count(M_FROM) FROM " & strMemberTablePrefix & "MEMBERS M, " & strTablePrefix & "PM P WHERE M.M_NAME = '" & strDBNTUserName & "' AND M.MEMBER_ID = P.M_FROM)"
```

Felmeddelandet ser ut så här:

```
Microsoft OLE DB Provider for ODBC Drivers error '80040e09' 

[TCX][MyODBC]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT Count(M_TO) FROM FORUM_MEMBERS M, FORUM_PM P WHERE M.M_N
```

Jag ligger på Aleborgs webbhotell och han kör med MySQL 4.

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

## #2 — Sebbe, 2003-06-07T22:23Z

Kan det kanske bero på att MySQL endast stödjer sub-selects från och med version 4.1? :)

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

## #3 — Bendro, 2003-06-07T22:25Z

Ser man på....det visste jag inte som sagt :)
Så nu gäller det bara att klura ut ett alternativ till detta då....eller be Aleborg uppgradera ;)

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

## #4 — Bendro, 2003-06-08T11:59Z

Jag har försökt, men dels var det för länge sedan jag kodade överhuvudtaget...dels har jag aldrig jobbat med MySQL.
Undrar därför om någon skulle kunna förbarma sig och hjälpa mig att fixa så att detta funkar? 

```
		strSql = "SELECT pmtotal1=(SELECT Count(M_TO) FROM " & strMemberTablePrefix & "MEMBERS M, " & strTablePrefix & "PM P WHERE M.M_NAME = '" & strDBNTUserName & "' AND M.MEMBER_ID = P.M_TO), pmtotal2=(SELECT Count(M_FROM) FROM " & strMemberTablePrefix & "MEMBERS M, " & strTablePrefix & "PM P WHERE M.M_NAME = '" & strDBNTUserName & "' AND M.MEMBER_ID = P.M_FROM)"
	
	Set rsPM = my_Conn.Execute(strSql)
	pmtotal1 = rsPM("pmtotal1")
	pmtotal2 = rsPM("pmtotal2")

	rsPM.close
	set rsPM = nothing
```

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

## #5 — Sebbe, 2003-06-08T12:05Z

Jag förstår inte riktigt vad det är du vill göra när du använder "=" i din SELECT-sats?

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

## #6 — Bendro, 2003-06-08T12:11Z

Fråga mig inte....det är inte jag som skrivit den här kodsnutten utan den ingår i det Snitz-forum jag har lagt upp på min hemsida.
Det är detta som är en del av mitt problem...jag förstår inte riktigt hur han som gjort detta har tänkte, och eftersom jag har så dålig koll på MySQL lyckas jag inte få till det.

Jag tolkar det i alla fall så att rsPM skall innehålla värden för både pmtotal1 och pmtotal2 och att det skall göras genom sub-selects. Men hur man bryter loss detta och skriver för att få samma slutresultat fast utan sub-selects är mer än jag lyckas klara av just nu....

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

## #7 — Bendro, 2003-06-08T12:23Z

Jag testade med en sådan här version:

```
strSql="SELECT Count(M_TO) FROM " & strMemberTablePrefix & "MEMBERS M, " & strTablePrefix & "PM P WHERE M.M_NAME = '" & strDBNTUserName & "' AND M.MEMBER_ID = P.M_TO"

Set rsPM = my_Conn.Execute(strSql)
pmtotal1 = rsPM("M_TO")
	rsPM.close
	set rsPM = nothing

strSql="SELECT Count(M_FROM) FROM " & strMemberTablePrefix & "MEMBERS M, " & strTablePrefix & "PM P WHERE M.M_NAME = '" & strDBNTUserName & "' AND M.MEMBER_ID = P.M_FROM"

Set rsPM = my_Conn.Execute(strSql)	
pmtotal2 = rsPM("M_FROM")
	rsPM.close
	set rsPM = nothing
```

Men fick följande fel:

```
ADODB.Recordset error '800a0cc1' 

Item cannot be found in the collection corresponding to the requested name or ordinal
```

Någon som ser var jag har tänkt fel?

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

## #8 — Sebbe, 2003-06-08T12:25Z

Jag undrar jag... Är det kanske så här du vill ha det?

```
strSql="SELECT Count(M_TO) FROM " & strMemberTablePrefix & "MEMBERS M, " & strTablePrefix & "PM P WHERE M.M_NAME = '" & strDBNTUserName & "' AND M.MEMBER_ID = P.M_TO"

Set rsPM = my_Conn.Execute(strSql)
pmtotal1 = rsPM(0)
	rsPM.close
	set rsPM = nothing

strSql="SELECT Count(M_FROM) FROM " & strMemberTablePrefix & "MEMBERS M, " & strTablePrefix & "PM P WHERE M.M_NAME = '" & strDBNTUserName & "' AND M.MEMBER_ID = P.M_FROM"

Set rsPM = my_Conn.Execute(strSql)	
pmtotal2 = rsPM(0)
	rsPM.close
	set rsPM = nothing
```

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

## #9 — Bendro, 2003-06-08T12:28Z

Yes! Nu funkar det kanon!
Stort tack Sebbe!

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/79172-syntaxfel
