Devi prima selezionare gli ID in maniera DISTINTA con DISTINCT e raggrupparli per ID con GROUP BY.
A questo punto, nel ciclo di lettura di questa query ne esegui un'altra che seleziona i titoli in base all'ID.
codice:
<%
set conn = server.createObject("ADODB.Connection")
conn.open ' la tua stringa di connessione
sql1 = "SELECT DISTINCT(IDCAT) FROM tabella1 GROUP BY IDCAT"
set rs1 = conn.execute(sql1)
if not rs1.eof then
do until rs1.eof
response.write "<ul>"
response.write "[*]" & rs1("IDACAT")
sql2 = "SELECT titolo FROM tabella1 WHERE IDCAT = " & rs1("IDCAT")
set rs2 = conn.execute(sql2)
if not rs2.eof then
response.write "<ul>"
do until rs2.eof
response.write "[*]" & rs2("titolo") & ""
rs2.moveNext
loop
response.write "[/list]"
end if
rs2.close
set rs2 = nothing
response.write ""
response.write "[/list]"
rs1.moveNext
loop
end if
rs1.close
set rs1 = nothing
conn.close
set conn = nothing
%>