Problema con ORDER BY
Hola. Estaría muy agradecido si alguien me pudiese decir cómo resolver un problema que tengo con el siguiente código:
strsql = "SELECT * FROM listado where UCase(tipo) like '%" & UCase(Request("tipo")) &"%' AND UCase(tamanyo) like '%" & UCase(Request("tamanyo")) & "%' order by "& UCase(Request("precio")) & " asc"
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("bd1.mdb")
' creo el RecordSet y defino la cantidad de registros a mostrar
Set RS = Server.CreateObject("ADODB.Recordset")
RS.PageSize = mostrar
RS.CacheSize = mostrar
' Abro la tabla... A veces me da error en esta línea siguiente
RS.Open strSQL, oConn,3,1
El ORDER BY no me funciona de ningún tipo. He estdo mirando ejemplos, por eso he puesto lo de " asc" y he probado mil maneras pero eso no me va. Sin embargo, si quito el order by y lo que lleva a continuación y cierro el select con una comilla sí que me va. o sea que es ese sólo el problema. Espero que alguien sepa resolverlo. Muchas gracias por adelantado.
strsql = "SELECT * FROM listado where UCase(tipo) like '%" & UCase(Request("tipo")) &"%' AND UCase(tamanyo) like '%" & UCase(Request("tamanyo")) & "%' order by "& UCase(Request("precio")) & " asc"
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("bd1.mdb")
' creo el RecordSet y defino la cantidad de registros a mostrar
Set RS = Server.CreateObject("ADODB.Recordset")
RS.PageSize = mostrar
RS.CacheSize = mostrar
' Abro la tabla... A veces me da error en esta línea siguiente
RS.Open strSQL, oConn,3,1
El ORDER BY no me funciona de ningún tipo. He estdo mirando ejemplos, por eso he puesto lo de " asc" y he probado mil maneras pero eso no me va. Sin embargo, si quito el order by y lo que lleva a continuación y cierro el select con una comilla sí que me va. o sea que es ese sólo el problema. Espero que alguien sepa resolverlo. Muchas gracias por adelantado.
Mira, me parece que el Order By lo puedes utilizar solamente con los nombres de los campos que tienes en la tabla (como por Ejemplo Precio ó Tamanyo que tienes en tu query), osea, no con variables, como veo que tienes el tu código
y mira como tu intentas ordenar por el precio, pero a través de una variable, intentalo con esto :
order by UCase(tipo) asc;
(Osea, con el nombre del campo de la tabla)
Ojala sea eso
Shao !!
y mira como tu intentas ordenar por el precio, pero a través de una variable, intentalo con esto :
order by UCase(tipo) asc;
(Osea, con el nombre del campo de la tabla)
Ojala sea eso
Shao !!
Si, asi es solo se puede utilizar con los campos, y ademas de eso si estas trabajando con funciones de grupo como por ejemplo puede ser un count, tampoco dejar usar order by.
Si la cosa se pone complicada usa group by.
Por ejemplo si quieres sacar numero de forma decreciente pues pones Group by -1 * (Nombre del campo)
Saludos
Si la cosa se pone complicada usa group by.
Por ejemplo si quieres sacar numero de forma decreciente pues pones Group by -1 * (Nombre del campo)
Saludos