Avatar billede jimpp Nybegynder
09. januar 2004 - 12:28 Der er 12 kommentarer og
1 løsning

ORDER by med count

Jeg har denne SQL kommando

"SELECT COUNT(*) AS ialt FROM nyheder WHERE Forfatter=" & RS_crew("id") & " ORDER by 'ialt' DESC" , Conn_sites, 1, 3

Jeg skal have dne til at sortere efter ialt, men selv om jeg skriver det jeg finder logisk

Så virker det ikke :)
Avatar billede htm Nybegynder
09. januar 2004 - 12:35 #1
prøv ialt uden ' omkring.
Avatar billede avlund Nybegynder
09. januar 2004 - 12:36 #2
Jamen, du får da også kun ét resultat ud af den query. Så der er ikke noget at sortere på...?
Avatar billede nute Nybegynder
09. januar 2004 - 12:37 #3
det giver jo ingen mening at sortere ett eneste tal ?! når du udfører denne SQL, så vil du kun få én kolonne tilbage, og det er hvor mange records du har i din base. Du har ikke behov for ORDER BY. prøv

"SELECT COUNT(*) AS ialt FROM nyheder WHERE Forfatter=" & RS_crew("id"), Conn_sites, 1, 3
Avatar billede htm Nybegynder
09. januar 2004 - 12:38 #4
dooh...
Avatar billede jimpp Nybegynder
09. januar 2004 - 12:44 #5
Fair nok, det er her skal skal bruge sorteringen: nu får i hele scriptet

Set RS_crew = Server.CreateObject("ADODB.RecordSet")
RS_crew.open "Select * From [users]" , Conn_sites, 1, 3

do while not RS_crew.eof
  Set RS_text = Server.CreateObject("ADODB.RecordSet")
  RS_text.open "SELECT COUNT(*) AS ialt FROM nyheder WHERE Forfatter=" & RS_crew("id") & " ORDER by 'ialt' DESC" , Conn_sites, 1, 3

  strIalt = RS_text("ialt")
  strFirst = RS_crew("Firstname")
  strLast = RS_crew("Lastname")

  Response.Write("<tr><td>" & strFirst & " " & strLast & "</td><td>" & strIalt & "</td></tr>")
 
  RS_text.close
  set RS_text = nothing

  RS_crew.MoveNext
loop

RS_crew.close
set RS_crew = nothing
%>
Avatar billede nute Nybegynder
09. januar 2004 - 12:53 #6
*fjern* "ORDER BY 'ialt' DESC" , så vil det fungere !!
Avatar billede nute Nybegynder
09. januar 2004 - 12:53 #7
Med andre ord ... skifte denne linje:

RS_text.open "SELECT COUNT(*) AS ialt FROM nyheder WHERE Forfatter=" & RS_crew("id") & " ORDER by 'ialt' DESC" , Conn_sites, 1, 3

ud med denne:

RS_text.open "SELECT COUNT(*) AS ialt FROM nyheder WHERE Forfatter=" & RS_crew("id"), Conn_sites, 1, 3

/nute
Avatar billede eagleeye Praktikant
09. januar 2004 - 12:53 #8
Så skal du lave det på dénne måde med LEFT JOIN og GROUP BY:


Set RS_crew = Server.CreateObject("ADODB.RecordSet")
SQL = "Select Count(*) as ialt, Firstname, Lastname From [users] LEFT JOIN nyheder ON [users.id] = nyheder.Forfatter GROUP BY [users.Firstname], [users.Lastname] ORDER BY Count(*) DESC"

RS_crew.open SQL , Conn_sites, 1, 3

do while not RS_crew.eof
  strIalt = RS_crew("ialt")
  strFirst = RS_crew("Firstname")
  strLast = RS_crew("Lastname")

  Response.Write("<tr><td>" & strFirst & " " & strLast & "</td><td>" & strIalt & "</td></tr>")
 
  RS_crew.MoveNext
loop

RS_crew.close
set RS_crew = nothing
%>
Avatar billede jimpp Nybegynder
09. januar 2004 - 12:56 #9
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Invalid bracketing of name '[users.id]'.

/games/nyheder_crew.asp, line 15

jeg fatter nada
Avatar billede nute Nybegynder
09. januar 2004 - 12:58 #10
ahh ... jeg havde ikke lige set din loop. eagleeye har ret ...
Avatar billede eagleeye Praktikant
09. januar 2004 - 13:00 #11
Prøv at skrive det som denne så, men hedder autonummer kolonne ikke id??

SQL = "Select Count(*) as ialt, Firstname, Lastname From [users] LEFT JOIN nyheder ON [users].[id] = nyheder.Forfatter GROUP BY [users.Firstname], [users.Lastname] ORDER BY Count(*) DESC"
Avatar billede jimpp Nybegynder
13. december 2004 - 09:00 #12
Eagle - giuv et svar :)
Avatar billede eagleeye Praktikant
13. december 2004 - 20:31 #13
Ja det gør jeg da :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester