![]() |
¿Y por qué no funciona el ORDER BY?
Me vais a mandar a la porra, como poco, por pesado. El query que había planteado en los anteriores hilos ha quedado así al final:
Dado que con ese query tengo que alimentar un TreeView me interesa añadir ese campo con los votos obtenidos. Funciona como un tiro gracias a la sugerencia de duilioisola pero me ocurre un cosa muy curiosa: no ordena bien todo. Fijaros en las filas destacadas: ![]() A pesar de haber puesto como segundo campo de ordenación la suma de votos en orden descendente, hace lo que le da la gana |
¿Será porque es alfanumérico?
|
Cita:
|
El `order by` como lo muestras esta correcto. La BD no se esta inventando eso. El problema es que no es el orden que estas buscando. Supongo que quires el `total de votos ascendente por municipio`?
|
Cita:
|
Es que al tener el ORDER BY 4, 5 DESC, 2 están priorizando el 4 ( NomMunicipio) antes que VotPar.
Si quieres ordenar por VotPar, entonces tendrás que poner 5, 4, etc... |
Por lo que veo está bien la premisa, que el orden no parece correcto. Las columnas 4 y 5 serían "NOMMUNICIPIO" y "VOTPAR", y el resultado resumido a esas columnas es:
Código:
ABENOJAR 829 Código:
ABENOJAR 829 La segunda columna es el resultado de un SUM así que dudo que sea alfanumérico. |
Al usar una SELECT para calcular el dato, el motor pasa.
Encapsula todo en una SELECT y prueba.
Por otro lado, haces unas SELECT totalmente anárquicas, que me parece que penalizan totalmente el rendimiento. Saludos |
Cita:
Código:
Invalid token. Cita:
|
Hola,
supongo que ese error te da porque no pones nombre /alias a las columnas.
Te falta bautizar alguna columna para que lo entienda, concretamente la sexta columna. (Te respondo rápido sin analizar al 100% la consulta...) Saludos PD: ya he visto en otro hilo que empiezas a escribir consultas de forma más estructurada. De esa manera para el motor es más fácil. |
Cita:
Solo para reforzar la idea, ¿Qué pasa si ordenas ORDER BY 4 DESC, 5, 2?.. porque si el fenómeno se repite invertido, entonces sigo sospechando del primer campo (4). |
Cita:
![]() |
Cita:
![]() |
Cita:
Añadido a esto: la tercera columna es el código de municipio y resulta que en los primeros registros que se ven ahí está el mismo nombre (VISO DEL MARQUÉS) pero hay dos códigos diferentes: 57486, que es el que le corresponde, y 1217, que es de Alcázar de San Juan. Pero encima ese 57846 aparece más adelante en Villarta de San Juan. Cada vez lo entiendo menos. |
Creo que es mejor que empieces por lo básico, probar y si va bien entonces añades otra tabla, y así poco a poco.
Si falla en un momento verás dónde es. Pues al quitar lo que acabes de añadir volverá a ir bien. No sé si puedes "anonimizar" los datos y poner la BD para que podamos probar. |
Simplificado no es así?:
Código:
| municipio | partido | votos | |
Cita:
|
No. solo puse un ejemplo reducido.
|
Cita:
|
La franja horaria es GMT +2. Ahora son las 17:59:39. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi