Avatar billede axkris Nybegynder
07. juli 2004 - 11:19 Der er 8 kommentarer og
2 løsninger

Hente oplysninger i et hug

Hej

Jeg skal have disse to kørt sammen til en forespørgsel (så oplysningerne hentes i et hug):

1)
strSQL="SELECT * FROM CHAT_CHANNEL"
set rs = dataConn.execute(strSQL)

2)
strSQL = "SELECT COUNT(Nick) as OnlineNicks FROM CHAT_ONLINE WHERE ChannelID = " & RS("ID")
set rs2 = dataConn.execute(strSQL)

Og når det er gjort, så skal jeg have den til "ORDER BY ONLINENICKS DESC".

Kan du hjælpe mig?
Avatar billede Slettet bruger
07. juli 2004 - 11:27 #1
Noget i retning af:

SELECT *
,(SELECT COUNT(Nick) FROM CHAT_ONLINE
  WHERE ChannelID = CHAT_CHANNEL.ID) as OnlineNicks
FROM CHAT_CHANNEL
ORDER BY ONLINENICKS DESC
Avatar billede axkris Nybegynder
07. juli 2004 - 11:33 #2
strSQL="SELECT *, (SELECT COUNT(Nick) FROM CHAT_ONLINE WHERE ChannelID = CHAT_CHANNEL.ID) as OnlineNicks FROM CHAT_CHANNELORDER BY ONLINENICKS DESC"
set rs = dataConn.execute(strSQL)

Microsoft OLE DB Provider for ODBC Drivers (0x80040E09)
[TCX][MyODBC]You have an error in your SQL syntax near 'SELECT COUNT(Nick) FROM CHAT_ONLINE WHERE ChannelID = CHAT_CHANNEL.ID) as Online' at line 1
/chat/iframe_listChannels.asp, line 39
Avatar billede proaccess Nybegynder
07. juli 2004 - 11:39 #3
strSQL = "SELECT CH.Name, CH.Nick, COUNT(ON.Nick) AS OnlineNicks FROM CHAT_CHANNEL AS CH LEFT JOIN CHAT_ONLINE AS ON ON CH.ID=ON.ChannelID GROUP BY CH.Name, CH.Nick ORDER BY OnlineNicks DESC"
set rs = dataConn.execute(strSQL)

Du er nødt til at specificere dine feltnavne fra CHAR_CHANNEL (både lige efter SELECT og efter GROUP BY)
Avatar billede axkris Nybegynder
07. juli 2004 - 11:45 #4
[TCX][MyODBC]You have an error in your SQL syntax near 'ON ON CH.ID=ON.ChannelID GROUP BY CH.Name, CH.Nick ORDER BY OnlineNicks DESC' at line 1
Avatar billede axkris Nybegynder
07. juli 2004 - 13:31 #5
Er den for svær? ;)
Avatar billede Slettet bruger
07. juli 2004 - 13:38 #6
Proaccess, er der ikke et "ON" for meget?

prøv:
strSQL = "SELECT CH.Name, CH.Nick, COUNT(ON.Nick) AS OnlineNicks FROM CHAT_CHANNEL AS CH LEFT JOIN CHAT_ONLINE AS ON CH.ID=ON.ChannelID GROUP BY CH.Name, CH.Nick ORDER BY OnlineNicks DESC"
set rs = dataConn.execute(strSQL)
Avatar billede proaccess Nybegynder
07. juli 2004 - 13:38 #7
Jeg ændrer lige i mit alias til tabellerne...

strSQL = "SELECT C.Name, C.Nick, COUNT(O.Nick) AS OnlineNicks FROM CHAT_CHANNEL AS C LEFT JOIN CHAT_ONLINE AS O ON C.ID=O.ChannelID GROUP BY C.Name, C.Nick ORDER BY OnlineNicks DESC"
set rs = dataConn.execute(strSQL)
Avatar billede proaccess Nybegynder
07. juli 2004 - 13:39 #8
Man må selvfølgelig ikke pludselig kalde en tabel for "on"...  SILLY ME  ;0)
Avatar billede axkris Nybegynder
07. juli 2004 - 13:44 #9
Det virker - takker for hjælpen:

strSQL = "SELECT C.*, COUNT(O.Nick) AS OnlineNicks FROM CHAT_CHANNEL AS C LEFT JOIN CHAT_ONLINE AS O ON C.ID=O.ChannelID GROUP BY C.Name ORDER BY OnlineNicks DESC"
set rs = dataConn.execute(strSQL)

rahp tryk også lige svar :-D
Avatar billede Slettet bruger
07. juli 2004 - 13:48 #10
Svar.
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
Computerworld tilbyder specialiserede kurser i database-management

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