Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Order by (https://www.clubdelphi.com/foros/showthread.php?t=13755)

VRO 30-08-2004 11:08:27

Order by
 
Hola, siento haber escrito todas en mayúsculas, bien lo que pretendo conseguir es sacar El Contador con mayor numero de lecturas para ello hice:
Código Delphi [-]
query.close;
query.sql.text:='select count(*) as num,contadores.numero from contadores,lecturas where contadores.numero=lecturas.numero and patron=0 group by contadores.numero order by num desc'
query.close;

Para ello me he basado en una respuesta correcta de un examende Mysql que decía:
"Hallar lo jugadores que más partidas han jugado con blancas" y el código era

mysql-> select nombre,apellido,count(resultado) as ganadas_b
-> from partida,jugador
-> where resultado=1
->partida.blancas=id_jugador
->group by nombre,apellido
-> order by ganadas_b
->limit 1;

guillotmarc 30-08-2004 12:01:16

Hola.

¿ Cual es el problema ? ¿ El código que has indicado no funciona en Interbase ?

NOTA: La diferencia que veo con el código MySQL es que en él solo obtienes un registro (el del contador más alto). Esto lo hace el limit 1. Interbase no tiene ningún equivalente (normalmente para hacer estas cosas en Interbase se utiliza un procedimiento almacenado). Con Firebird puedes usar el first 1 (aunque se pone a continuación del select y no al final de la sentencia, como en MySQL).

Saludos.

VRO 30-08-2004 12:09:52

El problema es con interbase no admite ordernar por una agregación, es decir, no permite que haga order by num desc da un error que es: Column Unknow NUM, y no se como hacer para que la consulta funcione.

__cadetill 30-08-2004 12:20:07

Sí que lo permite

Código SQL [-]
order by 1 desc

VRO 30-08-2004 12:28:26

Muchísimas gracias, no se que haríamos los principiantes sin vuestra ayuda.

guillotmarc 30-08-2004 18:30:40

Hola.

Esto ya te lo indiqué la semana pasada : (en la nota final) http://www.clubdelphi.com/foros/show...48&postcount=2

Saludos.

VRO 31-08-2004 08:17:05

Gracias denuevo, pero cuando lo leí no caí en la cuenta del número ordinal para este caso, y eso que estaba bien explicado e indicado, gracias.


La franja horaria es GMT +2. Ahora son las 04:07:12.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi