Avatar billede rane Nybegynder
07. juli 2006 - 11:16 Der er 6 kommentarer og
1 løsning

Select random

Jeg har en MS SQL database med en tabel med bil-informationer. Der er mange rækker med Audi, Mercedes, Opel osv. På en side vil jeg gerne vise ét (1) billede af hver bilmærke...men det skal være random.

Min tabel har felterne:  Bilmaerke, Bilmodel
Jeg har et billede til hver bilmodel der ser sådan ud:  audi-a4.jpg eller opel-corsa.jpg osv.
som bliver generet udfra hvad der står i de 2 felter.

Så hvad jeg har brug for er noget i denne stil:

SELECT top 1 random bilmaerke, bilmodel FROM tabel WHERE onlinestatus = 1 GROUP BY bilmaerke  (meget groft skrevet)

så der bliver vist et random billede af alle tilgængelige bilmærker i tabellen.

Hvordan gør man dette?
Avatar billede fennec Nybegynder
07. juli 2006 - 11:32 #1
SELECT top 1 bilmaerke, bilmodel FROM tabel WHERE onlinestatus = 1 GROUP BY bilmaerke order by newID()
Avatar billede rane Nybegynder
07. juli 2006 - 11:41 #2
Med den SQL får jeg kun 1 record i mit recordset. Den er tilgengæld random...skulle jo gerne få et recordset med de 20-30 forskellige bilmærker.
Avatar billede fennec Nybegynder
07. juli 2006 - 12:29 #3
Den kan jeg godt nok ikke klare. Den eneste måde jeg kan gøre det på er via et union script, men det er du næppe intreseret i, da du så manuelt skal identificere bilmærkerne. Det er altså ikke et dynamisk script...
Avatar billede rane Nybegynder
07. juli 2006 - 12:40 #4
Jeg har fikset det på en anden måde:

SELECT distinct bilmaerke FROM items WHERE AND onlinestatus = 1  GROUP BY bilmaerke order by bilmaerke ASC

Derefter i selve rs.loopet:

SELECT top 1 id, bilmaerke, bilmodel FROM items WHERE bilmaerke = '" & rs("bilmaerke") & "' AND onlinestatus = 1  order by newID()

Men du skal alligevel have points, for jeg kendte ikke til newID() funktionen :)
Avatar billede rane Nybegynder
07. juli 2006 - 12:40 #5
WHERE AND = WHERE kun
Avatar billede fennec Nybegynder
07. juli 2006 - 12:48 #6
Ok. Du skal bare være opmærksom på at det er en MS-SQL only funktion.
MySQL bruger rand()
Access bruger rnd() i en eller anden special opbygning, som jeg ikke kan huske lige nu.

.o)
Avatar billede rane Nybegynder
07. juli 2006 - 13:09 #7
OK takker for info. Det skal kun fungere på en MS SQL server såå det er fjong. Takker :)
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