På vilket sätt fungerar det inte?
Om du har så där långa rader så kan du gärna dela upp dem så att det blir läsbart.
8 svar · 414 visningar · startad av henkz
Vill kunna få fram vilken placering en bild har via medelvärdet.
Någon som har en bättre lösning?
Nuvarande fungerade kod utan placering:
SQL = "SELECT id, file, rubrik, bredd, hojd, votesnitt, votetotal FROM bilder WHERE userid='"&session("userid")&"' order by presspic desc, indag"
Ej fungerande test:
SQL = "SELECT id, file, rubrik, bredd, hojd, votesnitt, votetotal, (SELECT COUNT(*) FROM bilder t2 WHERE t2.votesnitt > t1.votesnitt) AS num_rows_greater FROM bilder t1 WHERE userid='"&session("userid")&"' order by presspic desc, indag"
På vilket sätt fungerar det inte?
Om du har så där långa rader så kan du gärna dela upp dem så att det blir läsbart.
det ger felmeddelandet:
Microsoft OLE DB Provider for ODBC Drivers fel '80040e14'
[MySQL][ODBC 3.51 Driver][mysqld-4.0.23-nt]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(*) FROM bilder t2 WHERE t2.votesnitt > t1.votesnit
Kan det bero på att jag har typen decimal(10,2) i mysql för "votesnitt" ?
Nej, det beror på att du har en gammal version av MySQL, som inte stödjer subqueries. Uppgradera?
räcker det med version 4.1x eller måste jag installera v5.x?
Nu har jag äntligen fått tid att uppgradera till v4.1
Sql strängen ovan fungerade direkt men när jag skulle göra nästa gick det sämre. Koden nedan ger felet:
Microsoft OLE DB Provider for ODBC Drivers fel '80040e31'
[MySQL][ODBC 3.51 Driver][mysqld-4.1.14-nt]Unknown table 'bilder' in field list
SQL = "SELECT bilder.id, bilder.file, bilder.bredd, bilder.hojd, bilder.votesnitt,
member.id, member.username, member.kon, member.age,(SELECT COUNT(*)
FROM bilder t2 WHERE t2.votesnitt > t1.votesnitt) AS num_rows_greater
FROM bilder t1 INNER JOIN member ON member.id = bilder.userid WHERE
bilder.id='"&pid&"' LIMIT 1"
Eftersom du har gett tabellen bilder ett korrelationsnamn så måste du använda det namnet och inte det ursprungliga tabellnamnet.