FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
¿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 |
#2
|
||||
|
||||
¿Será porque es alfanumérico?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
||||
|
||||
Los campos 4 y 2 (Nombre del municipio y nombre del partido) sí lo son; el 5 (Votos) es entero. No obstante si ese fuera el problema, en el resto de municipios haría lo mismo y unos lo hace bien y otros no.
|
#4
|
||||
|
||||
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`?
__________________
El malabarista. |
#5
|
||||
|
||||
Efectivamente, eso es lo que quiero
|
#6
|
||||
|
||||
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...
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#7
|
||||
|
||||
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 ABENOJAR 249 AGUDO 170 AGUDO 212 Código:
ABENOJAR 829 ABENOJAR 249 AGUDO 212 AGUDO 170 La segunda columna es el resultado de un SUM así que dudo que sea alfanumérico.
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#8
|
||||
|
||||
Gracias por vuestras respuestas.
Cita:
Cita:
Cita:
Cita:
Lo único que se me ocurre es crear una tabla temporal, indexada por los campos que me interesan, y cargarla a partir de ese query. |
#9
|
||||
|
||||
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
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
#10
|
||||
|
||||
Cita:
Código:
Invalid token. Dynamic SQL Error. SQL error code = -104. Invalid command. No column name specified for column number 6 in derived table A. |
#11
|
||||
|
||||
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.
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
#12
|
||||
|
||||
Si el nombre del municipio no salía de una tabla normalizada, y había dos registros con el mismo nombre, me refería a actualizar uno contra el otro. Pero por lo que cuentas no tiene sentido.
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).
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#13
|
||||
|
||||
Cita:
Última edición por Angel.Matilla fecha: 07-11-2023 a las 19:43:30. |
#14
|
||||
|
||||
#15
|
||||
|
||||
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. Última edición por Angel.Matilla fecha: 07-11-2023 a las 19:50:29. |
#16
|
||||
|
||||
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.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#17
|
||||
|
||||
Simplificado no es así?:
Código:
| municipio | partido | votos | | --------- | ------- | ----- | | ABENOJAR | ALCAZAR | 249 | | ABENOJAR | POPULAR | 829 | | AGUDO | POPULAR | 170 | | AGUDO | ALCAZAR | 212 |
__________________
El malabarista. |
#18
|
||||
|
||||
¡Madre mía! Eso que sugieres ¿es recorrer toda la tabla e ir haciendo las asignaciones pertinentes?
|
#19
|
||||
|
||||
No. solo puse un ejemplo reducido.
__________________
El malabarista. |
#20
|
||||
|
||||
De todas maneras, lo que sugieres es ir leyendo todo para ponerlo en el SELECT. No tiene sentido o yo no he entendido la sugerencia.
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
No funciona ORDER BY desc LIMIT | franroju | PHP | 2 | 28-03-2013 15:08:44 |
funciona bien en windows 7 64b pero en XP no funciona | ASAPLTDA | Varios | 5 | 06-05-2011 17:24:50 |
order by no funciona con datetime... | User_baja1 | SQL | 1 | 17-05-2005 13:37:17 |
ORDER BY en Rave con parametro NO funciona !. | Luis | Impresión | 0 | 05-01-2005 19:01:19 |
Order by ...... | chutipascal | Firebird e Interbase | 8 | 24-06-2003 15:46:21 |
|