Foros del Web » Programando para Internet » ASP Clásico »

Ordenar datos al mostrar en pantalla

Estas en el tema de Ordenar datos al mostrar en pantalla en el foro de ASP Clásico en Foros del Web. Tengo una tabla en la que almaceno libros y otra tabla en la que almaceno articulos sobre los libros. LIBROS ARTICULOS id_libro id_articulo nombre_libro id_libro ...
  #1 (permalink)  
Antiguo 07/06/2007, 07:56
Avatar de Laika  
Fecha de Ingreso: octubre-2001
Mensajes: 1.376
Antigüedad: 22 años, 7 meses
Puntos: 0
Ordenar datos al mostrar en pantalla

Tengo una tabla en la que almaceno libros y otra tabla en la que almaceno articulos sobre los libros.

LIBROS ARTICULOS
id_libro id_articulo
nombre_libro id_libro
descripcion_libro texto_articulo

id_libro de la Tabla libros es clave principal. Bien lo que he hecho es que para cada libro, cual es el numero de articulos que hay sobre el y asi para todos los libros.

Los resultados los muestro en una tabla ordenados por el nombre del libro.

Mi pregunta es cómo podría hacer para ordenar los resultados por el número total de articulos, es decir, que me muestre por orden de mayor a menor por sus numeros de articulos.
  #2 (permalink)  
Antiguo 07/06/2007, 11:03
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Re: Ordenar datos al mostrar en pantalla

cuando ordenes...
...... ORDER BY campo DESC

campo
deberia ser total de articulos
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #3 (permalink)  
Antiguo 08/06/2007, 01:37
Avatar de Laika  
Fecha de Ingreso: octubre-2001
Mensajes: 1.376
Antigüedad: 22 años, 7 meses
Puntos: 0
Re: Ordenar datos al mostrar en pantalla

No puedo hacer eso. Os dejo el codigo que uso. Necesitari aordenar por los reusltados del 2º bucle que usa el otro recordset.

LIBROS
id_libro
nombre_libro
descripcion_libro

ARTICULOS
id_articulo
id_libro
texto_articulo

Código:
Set Conn = Server.Createobject("ADODB.Connection")
conn.open "bd"

sql="SELECT id_libro,nombre_libro FROM libros WHERE nombre_libro <>'' order by nombre_libro"
set rs = Conn.Execute(sql)

<table width="677" border="1" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td width="117"><div align="center" class="Estilo2">Id_Libro</div></td>
    <td width="380"><div align="center" class="Estilo2">Nombre Libro </div></td>
    <td width="172"><div align="center" class="Estilo2">N&uacute;mero de Articulos</div></td>
  </tr>
  <%
  DO WHILE NOT RS.EOF
	
	contador=0	
	sql2="SELECT id_libro FROM articulos where id_libro=" & rs("id_libro")
	set rs2 = Conn.Execute(sql2)
	
	do while not rs2. eof
		contador=contador + 1
		rs2.movenext
	Loop
		rs2.close	
	
	%>
  <tr>
    <td><div align="center"><%=rs("id_libro")%></div></td>
    <td><div align="center"><%=rs("nombre_libro")%></div></td>
    <td><div align="center"><%=contador%></div></td>
	<%
	 rs.movenext
	 
	Loop %>
  </tr>
</table>
</body>
</html>

<%
rs.close
conn.close
  #4 (permalink)  
Antiguo 08/06/2007, 10:55
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Re: Ordenar datos al mostrar en pantalla

laika

el segundo while, lo ustilizas solo para sacar cuantos son verdad?
Cita:
sql2="SELECT id_libro FROM articulos where id_libro=" & rs("id_libro")
por que no usas el COUNT
Cita:
sql2="SELECT count(id_libro) as contador FROM articulos where id_libro=" & rs("id_libro")
asi te evitarias hacer el while


suerte
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #5 (permalink)  
Antiguo 11/06/2007, 15:09
Avatar de Laika  
Fecha de Ingreso: octubre-2001
Mensajes: 1.376
Antigüedad: 22 años, 7 meses
Puntos: 0
Re: Ordenar datos al mostrar en pantalla

Si,

He hecho el segundo select con el select count y ok, pero como puedo ahora ordenar los resultados segun lo que os he explicado por el resultado del segundo select por orden de más a menos?
  #6 (permalink)  
Antiguo 11/06/2007, 15:22
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: Ordenar datos al mostrar en pantalla

Trata esta sentencia en un solo recordset por favor:

Código:
SELECT 
a.id_libro,
a.nombre_libro, 
(SELECT count(id_libro) as contador FROM articulos where id_libro= a.id_libro) as contador 
FROM libros  a 
WHERE a.nombre_libro <>'' 
order by 
(SELECT count(id_libro) as contador FROM articulos where id_libro= a.id_libro), 
a.nombre_libro
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:31.