SQL = "Select Options_ID, Options_Name, Count(Relations.Rel_ID) As Antal From Options Left Outer Join Relations On Options_ID=Relations.OptionID Where Options_Active=1 Group By Relations.OptionID"
Får felet:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Drivrutin för ODBC Microsoft Access] Kopplingsuttrycket stöds inte.
Japp det gör dom
Kan det ha med kopplingen att göra?
dbPath = "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("newsletter.mdb")
'Lets open the DB
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open dbPath
'Lets get all the options and put them in a array
SQL = "Select Options_ID, Options_Name, Count(Relations.Rel_ID) As Antal From Options Left Outer Join Relations On Options_ID=Relations.OptionID Where Options_Active=1 Group By Relations.OptionID"
Set RS = Conn.Execute(SQL)
If Not RS.EOF Then
GetOptions = RS.GetRows()
Else
GetOptions = Null
End If
RS.Close
Set RS = Nothing
Conn.Close
Set Conn = Nothing
Det tror jag inte. Ett problem som jag ser är att du har för få och fel kolumner i group by
SQL = "Select Options_ID, Options_Name, Count(Relations.Rel_ID) As Antal " & _
" From Options Left Outer Join Relations " & _
" On Options_ID=Relations.OptionID " & _
" Where Options_Active=1 " & _
" Group By Options_ID, Options_Name"
Jodå, jag ser att du använder Access. Anledningen till kommentaren om Mysql är att dom är dom enda som godkänner den felaktiga sql-satsen.
Alla kolumner i select-listan som inte ingår i en aggregatfunktion måste vara med i group by. Det var det jag menade med felaktiga kolumner. Testade du den varianten?
Jag menade aldrig att denn fråga som jag skrev var samma som din med outer join. Jag var bara ute efter att se var det blev fel.
Så här då
SQL = "Select Options_ID, Options_Name,(select Count(*) from relations where optionId = O.Options_id) As Antal " & _
" From Options as O" & _
" Where Options_Active=1 "
Nu vet jag inte om kolumnnamnen finns i options-tabellen.