Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-11-2023
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.354
Poder: 19
Angel.Matilla Va por buen camino
¿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:
Código SQL [-]
SELECT DISTINCT A.Codigo, A.Nombre, COALESCE(RDB$GET_CONTEXT('USER_TRANSACTION', 'MUNICIPIO'), 1) Municipio, C.Nombre NomMunicipio,
       (SELECT SUM(Votos) FROM Resultados WHERE CodPrv = A.CodPrv AND Partido = A.Codigo AND Proceso = B.Proceso 
           AND Mesa IN (SELECT Codigo FROM Mesas WHERE CodPrv = A.CodPrv AND Municipio = COALESCE(RDB$GET_CONTEXT('USER_TRANSACTION', 'MUNICIPIO'), 1))) VotPar,
       RDB$SET_CONTEXT('USER_TRANSACTION', 'MUNICIPIO', (SELECT FIRST 1 Municipio FROM Mesas WHERE CodPrv = B.CodPrv AND Codigo = B.Mesa ORDER BY Municipio))
FROM Partidos A
LEFT JOIN Resultados B ON A.CodPrv = B.CodPrv AND A.Codigo = B.Partido AND B.Proceso = :Proceso
LEFT JOIN Poblacion C ON A.CodPrv = C.CodPrv AND COALESCE(RDB$GET_CONTEXT('USER_TRANSACTION', 'MUNICIPIO'), 1) = C.Codigo
WHERE A.CodPrv = :PrvIns AND A.Codigo > 0 
  AND EXISTS (SELECT Municipio FROM Mesas WHERE CodPrv = B.CodPrv AND Codigo = B.Mesa)
ORDER BY 4, 5 DESC, 2
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
Responder Con Cita
  #2  
Antiguo 06-11-2023
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Será porque es alfanumérico?
Responder Con Cita
  #3  
Antiguo 06-11-2023
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.354
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
¿Será porque es alfanumérico?
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.
Responder Con Cita
  #4  
Antiguo 06-11-2023
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.927
Poder: 26
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
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.
Responder Con Cita
  #5  
Antiguo 06-11-2023
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.354
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por mamcx Ver Mensaje
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`?
Efectivamente, eso es lo que quiero
Responder Con Cita
  #6  
Antiguo 06-11-2023
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
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...
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 00:58:40.


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
Copyright 1996-2007 Club Delphi