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

Duda en consulta ASP

Estas en el tema de Duda en consulta ASP en el foro de ASP Clásico en Foros del Web. Jelous. Tengo una dudilla. No parece muy complicado pero no me sale. Tengo una BD en Access llamada FH (frases célebres), que tiene entre otros ...
  #1 (permalink)  
Antiguo 11/07/2003, 04:42
Avatar de blade72  
Fecha de Ingreso: junio-2002
Ubicación: Valencia
Mensajes: 734
Antigüedad: 22 años
Puntos: 2
Duda en consulta ASP

Jelous.

Tengo una dudilla. No parece muy complicado pero no me sale.

Tengo una BD en Access llamada FH (frases célebres), que tiene entre otros campos Autor, frase.... etc. Los autores se pueden repetir en varias líneas, si un autor tiene 27 frases, pues aparecerá 27 veces.

Y una consulta que me da error (en el order by)

sqltxt="SELECT autor, count(autor) AS numfra FROM FH group by autor order by numfra desc"

Lo que querría es:

Que me sacara ordenado por número de frases (numfra) los autores(autor) junto con sus respectivo número de frases (numfra). Aquellos que más tienen primero y además ordenado descendentemente.


¿Me ayudan?
Grazie mille.
  #2 (permalink)  
Antiguo 11/07/2003, 05:06
Avatar de txarly  
Fecha de Ingreso: marzo-2003
Ubicación: Eibar (Gipuzkoa)
Mensajes: 455
Antigüedad: 21 años, 3 meses
Puntos: 2
Prueba así (a mi me funciona)

sqltxt="select distinct campo_autor, count(campo_frase) as numfra from FH group by campo_autor order by numfra desc"

donde campo_autor y campo_frase son los nombre de los campos en tu tabla.

Un saludo
__________________
¿Por qué Uri Geller doblaba cucharas?
  #3 (permalink)  
Antiguo 11/07/2003, 05:30
Avatar de blade72  
Fecha de Ingreso: junio-2002
Ubicación: Valencia
Mensajes: 734
Antigüedad: 22 años
Puntos: 2
Bueno, el count debe ser count(campo_autor), pero por lo demás no me funciona, no me deja poner numfra en el order by ni en el group by ni en el having tampoco.

"No se han especificado valores para algunos de los parámetros requeridos."

Como mucho me deja hacer esto:

sqltxt="SELECT autor, count(autor) AS numfra FROM fh4 group by autor having count(autor)>27"

Aquí saco el autor y el número de frases por autor siempre que sea su número mayor que 27, pero no lo ordena por número de frases, mas bien por autor.

No está mal, pero no es exactamente lo que yo quiero.
  #4 (permalink)  
Antiguo 12/07/2003, 09:59
Avatar de blade72  
Fecha de Ingreso: junio-2002
Ubicación: Valencia
Mensajes: 734
Antigüedad: 22 años
Puntos: 2
¿Nadie sabe la respuesta?

  #5 (permalink)  
Antiguo 14/07/2003, 01:28
Avatar de blade72  
Fecha de Ingreso: junio-2002
Ubicación: Valencia
Mensajes: 734
Antigüedad: 22 años
Puntos: 2
Y yo qué pensaba qué era facililla la pregunta...

  #6 (permalink)  
Antiguo 14/07/2003, 08:31
Avatar de AlexNV  
Fecha de Ingreso: junio-2003
Ubicación: Madrid
Mensajes: 289
Antigüedad: 21 años
Puntos: 1
vamos a ver,
no puedes hacer SELECT AUTOR, COUNT(AUTOR) porque lo que quieres no es contar autores, sino frases.
Prueba
SELECT AUTOR, COUNT(*) AS NUMFRA FROM FH GROUP BY AUTOR ORDER BY NUMFRA DESC

Supongo que eso es lo que quieres.
Espero que si.
  #7 (permalink)  
Antiguo 14/07/2003, 10:30
Avatar de blade72  
Fecha de Ingreso: junio-2002
Ubicación: Valencia
Mensajes: 734
Antigüedad: 22 años
Puntos: 2
SÍ QUE PUEDO. Lo que quiero es saber cuántas frases existen por autor, y puesto que si cada autor tiene 22 frases aparece 22 veces, cuento por autor y me sale el número de frases por autor.

De todas formas, trataré de aplicar tu opinión, a ver si saco algo en claro.

Gracias de todos modos.
  #8 (permalink)  
Antiguo 14/07/2003, 10:36
Avatar de AlexNV  
Fecha de Ingreso: junio-2003
Ubicación: Madrid
Mensajes: 289
Antigüedad: 21 años
Puntos: 1
tu lo has dicho, CUANTAS FRASES, por eso tienes que poner COUNT(FRASES) y no COUNT(AUTOR).
Pruebalo, ya verás como te sale.
Un saludo y suerte.
  #9 (permalink)  
Antiguo 15/07/2003, 00:49
Avatar de blade72  
Fecha de Ingreso: junio-2002
Ubicación: Valencia
Mensajes: 734
Antigüedad: 22 años
Puntos: 2
La web donde se produce la consulta:
http://frases.astalaweb.com/autor.asp


La consulta:
sqltxt="SELECT autor, count(autor) AS numfra FROM fh4 group by autor having count(autor)>27"

Intento ordenar por numfra pero me produce error y lo tengo que dejar así, además cambiar count(autor) por count(frase) da el mismo resultado, es decir:

sqltxt="SELECT autor, count(frase) AS numfra FROM fh4 group by autor having count(frase)>27"

da exactamente lo mismo (y repito que si pongo order by numfra me produce error, sin embargo order by autor funciona bien)


El resultado:
Aristóteles - 32 citas
Benjamin Franklin - 35 citas
Confucio - 30 citas
Jacinto Benavente - 30 citas
Johann W. Goethe - 40 citas
Marco Tulio Cicerón - 38 citas
Miguel de Cervantes - 30 citas
Oscar Wilde - 40 citas
Séneca - 38 citas
William Shakespeare - 28 citas

El problema:
¡No puedo ordenar por número de citas (numfra)!

La solución:
Pues a ver si alguien la sabe....
  #10 (permalink)  
Antiguo 15/07/2003, 01:05
Avatar de AlexNV  
Fecha de Ingreso: junio-2003
Ubicación: Madrid
Mensajes: 289
Antigüedad: 21 años
Puntos: 1
Por favor, prueba esto y dime que resultado te sale. Gracias.

SELECT TOP 10 AUTOR, COUNT(*) AS NUMFRA FROM FH4 GROUP BY AUTOR ORDER BY NUMFRA DESC
  #11 (permalink)  
Antiguo 15/07/2003, 02:17
Avatar de blade72  
Fecha de Ingreso: junio-2002
Ubicación: Valencia
Mensajes: 734
Antigüedad: 22 años
Puntos: 2
El error que me da es:

Tipo de error:
Microsoft JET Database Engine (0x80040E10)
No se han especificado valores para algunos de los parámetros requeridos.

El problema es que al renombrar no me deja poner el nuevo nombre (numfra en este caso) en las cláusulas order by, group by o having. Si hago lo mismo con autor y lo renombro a au (autor as AU) y luego intento ordenar o agrupar por AU, me dice que nanay de la china.

Ese parece que es el error que se ha venido repitiendo.

Pero bueno, muchas gracias, y tranquilo que conforme lo he hecho yo sale más o menos bien . Aunque pensaba que más gente sabría la respuesta (pues alguna tiene que haber ).
  #12 (permalink)  
Antiguo 15/07/2003, 02:54
Avatar de AlexNV  
Fecha de Ingreso: junio-2003
Ubicación: Madrid
Mensajes: 289
Antigüedad: 21 años
Puntos: 1
Bueno, por ultimo, prueba esto

SELECT TOP 10 AUTOR, COUNT(*) FROM FH4 GROUP BY AUTOR ORDER BY COUNT(*) DESC

A ver si es que el problema es con el alias.
  #13 (permalink)  
Antiguo 15/07/2003, 03:10
Avatar de blade72  
Fecha de Ingreso: junio-2002
Ubicación: Valencia
Mensajes: 734
Antigüedad: 22 años
Puntos: 2
Ahora sale esto:

Oscar Wilde - 40 citas
Johann W. Goethe - 40 citas
Marco Tulio Cicerón - 38 citas
Séneca - 38 citas
Benjamin Franklin - 35 citas
Aristóteles - 32 citas
Miguel de Cervantes - 30 citas
Confucio - 30 citas
Jacinto Benavente - 30 citas
William Shakespeare - 28 citas

Lo cual quiere decir:¡¡¡¡¡¡¡PERFECTOO!!!!!!!

Bueno, faltaba un detallito: COUNT(*) AS numfra
para luego aludir a numfra en VBscript.

OLE. Mushá grasia.
Xe, un dia voy a Madrid y te invito a unas cañas.

MM...mejor te vienes tú para Gandía (total medio Madrid está aquí... )

Saludos.
  #14 (permalink)  
Antiguo 15/07/2003, 03:14
Avatar de AlexNV  
Fecha de Ingreso: junio-2003
Ubicación: Madrid
Mensajes: 289
Antigüedad: 21 años
Puntos: 1
Joder, ya me estaba desmoralizando.

Bueno, no tengo plan para vacaciones, asi que si tienes sitio para mi familia (esposa, 3 hijos, 2 perros, suegra y canario, en ese orden) pues encantando de visitarte :)

Un saludo.
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 01:45.