Om du har en tabell som heter banners och som har bla kolumnerna
id weight
där weight är ett heltal. 1 motsvarar normalvikt och det förutsätts att alla banners har en vikt.
Tanken är att man lägger in alla id i en array och de som har högre vikt förekommer fler gånger i arrayen och har därmed större sannolikhet att bli valda.
sql = "select (select sum(weight) from banners),id , weight from banners"
set rs = connect.execute(sql)
dim a()
items = rs(0)
redim a(items - 1)
pos = 0
while not rs.eof
for i = 1 to rs(2)
a(pos) = rs(1)
pos = pos + 1
next
rs.movenext
wend
randomize
id = a(int(rnd()*items))
sql = "select * from banners where id = " & id
------------------
essentitia preter non sans multiplicandum