Opdatering af holddatabase, problem med SQL
Jeg har en holddatabase bestående af tre tabeller:teams:
------
teamid
teamnavn
raekke
medlemmer:
----------
medlemsnr
fornavn
efternavn
hold:
-----
teamid
medlemsnr
Tabellen 'hold' kobler teams med spillere.
Jeg viser holdet og nedenunder alle spillere. De der er sat på holdet har 'checked' i deres checkbox:
response.write "<form action='teams.asp?action=update&team=" & rsTeams("teamid") & "' method=post>"
response.write "<tr><th colspan=2>" & rsTeams("teamnavn") & "<br>" & rsTeams("raekke") & "</th>"
response.write "<td><input type=submit value='Opdater holdet'></td></tr>"
strSQLSPillere = "select medlemmer.medlemsnr, fornavn, efternavn, teamid "
strSQLSpillere = strSQLSpillere & "FROM medlemmer "
strSQLSpillere = strSQLSpillere & "LEFT JOIN hold ON medlemmer.medlemsnr = hold.medlemsnr"
set rsSpillere = conn.execute(strSQLSpillere)
While not rsSpillere.EOF
Response.write "<TD class=TDRadioButton><INPUT TYPE='checkbox' value=" & rsSpillere("medlemsnr") & " name='chk1' class=radiobutton"
If int(rsSpillere("teamid")) = int(rsTeams("teamid")) Then
response.write " checked>"
Else
response.write ">"
End If
response.write "</td>"
response.write "<td>" & rsSpillere("fornavn") & " " & rsSpillere("efternavn") & "</td></tr>"
rsSpillere.MoveNext
Wend
response.write "<tr><td colspan=2> </td></tr>"
response.write "</form>"
Når der trykkes på 'Opdater holdet' afvikles følgende:
strSQL = "INSERT INTO hold (teamid, medlemsnr) "
strSQL = strSQL & "SELECT " & teamet & ", medlemsnr "
strSQL = strSQL & "FROM medlemmer WHERE medlemsnr IN (" & request.form("chk1") & ") "
strSQL = strSQL & "AND NOT Exists (SELECT hold.medlemsnr FROM hold WHERE hold.medlemsnr = medlemmer.medlemsnr "
strSQL = strSQL & "AND hold.teamid = " & teamet & ")"
set rs = conn.execute(strSQL)
Men det giver mig følgende fejl:
ADODB.Connection.1 error '80004005'
SQLState: 42000
Native Error Code: 1064
[TCX][MyODBC]You have an error in your SQL syntax near 'Exists (SELECT hold.medlemsnr FROM hold WHERE hold.medlemsnr = medlemmer.medlems' at line 1
/teams.asp, line 27
Hvor linie 27 er linien med: set rs = ......
Hvad gør jeg galt?
