Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

¿Definir orden según los valores en el ORDER BY?

Estas en el tema de ¿Definir orden según los valores en el ORDER BY? en el foro de SQL Server en Foros del Web. Buenas, tengo que hacer una consulta que es bastante extraña, veréis, me piden averiguar la diferencia de meses transcurridos entre una serie de fases que ...
  #1 (permalink)  
Antiguo 14/12/2009, 08:39
 
Fecha de Ingreso: septiembre-2006
Mensajes: 6
Antigüedad: 17 años, 7 meses
Puntos: 0
Pregunta ¿Definir orden según los valores en el ORDER BY?

Buenas, tengo que hacer una consulta que es bastante extraña, veréis, me piden averiguar la diferencia de meses transcurridos entre una serie de fases que tienen asignadas un código. Por ejemplo:

Fase 1 - Código 10
Fase 2 - Código 20
Fase 3 - Código 50
Fase 4 - Código 40

El problema es que estos códigos, como véis, no son correlativos, por lo que a la hora de hacer el listado para comparar la fecha entre una fase y otra, me desordena las fases. Mi pregunta es: ¿Habría alguna forma de ordenarlo para que me salieran en un orden fijo dependiendo de su valor?

Muchas gracias de antemano.
  #2 (permalink)  
Antiguo 14/12/2009, 08:44
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: ¿Definir orden según los valores en el ORDER BY?

Ordenalos por fase, pero no por código, o suplanta el código por otro atributo que realice la discriminación correcta, como por ejemplo, la fecha, o las diferencias de fechas.
Si el DBMS no lo admite (suprimir un campo o más de uno en el ORDER BY ), tendrás que crear la consulta por medio de JOINs entre consultas parciales.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 14/12/2009, 09:03
 
Fecha de Ingreso: septiembre-2006
Mensajes: 6
Antigüedad: 17 años, 7 meses
Puntos: 0
Respuesta: ¿Definir orden según los valores en el ORDER BY?

La cosa es que como lo ordene por fecha ya no me conviene porque precisamente, las fases tienen que tener un orden de comparación fijo y este orden no es cronológico. Un ejemplo de lo que yo consigo es este listado (simplificado):

Codigo Codigo Fase Fecha

00001 10 xxx
00001 20 xxx
00001 30 xxx
00001 50 xxx

(las fechas que se comparan deben pertenecer al mismo código)

Como ves, está ordenado por código y código de fase. La cosa es que a mi me han dicho que el orden que debo llevar para comparar la fecha de cada fase es "10-50-20-30", por lo que un ORDER BY normal me descoloca el 50 a la última posición, cuando lo quiero en la segunda, para ir comparando con un cursor.

Gracias.
  #4 (permalink)  
Antiguo 24/12/2009, 05:04
 
Fecha de Ingreso: septiembre-2006
Mensajes: 6
Antigüedad: 17 años, 7 meses
Puntos: 0
Respuesta: ¿Definir orden según los valores en el ORDER BY?

Al final solucioné el problema (para quien le interese) de la forma que me ha dicho gnzsoloyo. Hice consultas específicas para aquellos códigos que quería que salieran en un orden diferente al natural, luego las fui relacionando, es algo extraño para comprender si no conoces el problema bien, pero me ha servido.

Gracias!
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 02:26.