no sé si te habrá funcionado, no he leido lo que han puesto, pero puede ser. aquí te doy otra sugerencia
<%
strSQL = "select * from compra_pre where id = 'a'"
set oRS = oCN.execute(strSQL)
' si el valor del campo id no es número no sé xq lo has puesto de esa forma, si no lo es tons ta bien de la forma q lo he puesto, pero si es numerico tons sería asi.
strSQL = "select * from compra_pre where id = "& 1
set oRS = oCN.execute(strSQL)
if not oRS.eof then
xtotal = 0
do while not oRS.eof
xtotal = Cint(oRS("total")) + Cint(xtotal)
oRS.movenext
loop
response.write xtotal
end if
%>
espero te sirva