ampyMedlem sedan feb. 20011 512 inlägg
Denna sql-sats är anpassad till en access-databas, men hur ska den vara till en mysql-databas?
Set oRS = Connect.Execute("select count(*) as antal from (select distinct krypingastnamn from statistik where sort = 'krypin' AND krypinagare = '"&medlem&"') ")
Felmeddelande:
Microsoft OLE DB Provider for ODBC Drivers error '80040e09'
[TCX][MyODBC]You have an error in your SQL syntax near 'select distinct krypingastnamn from statistik where sort = 'krypin' AND krypinag' at line 1
LAMPMedlem sedan mars 2002729 inlägg
Du får dela upp det i flera frågor. Mysql har ej stöd för subselectar och derived tables, med undantag för de absolut senaste beta versionerna om jag inte minns fel. :)
ampyMedlem sedan feb. 20011 512 inlägg
Hur delar jag upp den i flera olika frågor då?
@ndersMedlem sedan juni 200026 914 inlägg
Har inte MySQL stöd för SELECT COUNT (DISTINCT...) ?
Testa:
Set oRS = Connect.Execute("select count(distinct krypingastnamn) as antal from statistik where sort = 'krypin' AND krypinagare = '"&medlem&"'")
Mvh,
ampyMedlem sedan feb. 20011 512 inlägg
Tack så mycket @nders, den koden fungerade.
Men här har jag en annan kod som också är anpassad till en access-databas som jag vill ska fungera till en mysql-databas nu.
query = "select count(*) as antal, krypingastnamn from statistik where krypinagare = '"&medlem&"' AND sort = 'krypin' group by krypingastnamn order by 1 desc"
set rs = connect.execute(query)
c = 0
if not rs.eof then
response.write ""
krypinnamn = rs("krypingastnamn")
antal = rs("antal")
end if
Jag får inget felmeddelande men variablerna sätts inte ut, varför?
LAMPMedlem sedan mars 2002729 inlägg
Ursprungligen av @nders Har inte MySQL stöd för SELECT COUNT (DISTINCT...) ?
Testa:
Set oRS = Connect.Execute("select count(distinct krypingastnamn) as antal from statistik where sort = 'krypin' AND krypinagare = '"&medlem&"'")
Mvh,
Jo, men inte på det sättet ampy skrivit på ;)
LarsGMedlem sedan dec. 200012 465 inlägg
Lägg till
option=16384
när du öppnar ansluningen.
LAMPMedlem sedan mars 2002729 inlägg
Misstänker att frågan kommer, så detta är i förebyggande syfte ;)
Option specificerar med en Integer hur MyODBC ska arbeta. Och konstanten 16384 ändrar datatypen på LONGLONG kolumner till Int kolumner.
ampyMedlem sedan feb. 20011 512 inlägg
Alltså min första fråga är löst men sen postade jag en ny kod i samma tråd eftersom det känns ondöigt att skapa en ny. Hur ska man skriva den andra koden med query till mysql-databasen?
LarsGMedlem sedan dec. 200012 465 inlägg
Din andra fråga skall fungera i Mysql som den är.
ampyMedlem sedan feb. 20011 512 inlägg
Men om jag skriver tex så här:
query = "select count(*) as antal, krypingastnamn from statistik where krypinagare = '"&medlem&"' AND sort = 'krypin' group by krypingastnamn order by 1 desc"
set rs = connect.execute(query)
c = 0
if not rs.eof then
response.write "test"
krypinnamn = rs("krypingastnamn")
antal = rs("antal")
end if
Så skrivs inte test ut men den gör det när jag avänder en access-databas.
LarsGMedlem sedan dec. 200012 465 inlägg
Har du med option = 16384 när du öppnar din anslutning?