Pues eso necesito hacer una consulta ordenada de 10 en 10, me explico (eso lo puedo de manera individual pero necesito mostrar todos en una sóla consulta), tengo un catálogo de vehículos ya cada uno tiene un asignación fija de combustible, necesito mostrar en una sóla consulta ordenada de la siguiente forma:
1- Vehículos con asignaciones menores de 10 Galones
2- Vehículos con asignaciones entre 11 y 20 galones
3- Vehículos con asignaciones entre 21 y 30 galones
4- Y así sucesivamente hasta mayor de 100+
Repito, eso lo puedo hacer de manera individual, pero también necesito mostrarlo todos juntos en una sóla consulta, ¿ es posible ?
Saludos.
Consulta de 10 en 10 Firebird
Started by
enecumene
, Nov 09 2012 05:29 AM
6 replies to this topic
#1
Posted 09 November 2012 - 05:29 AM
#2
Posted 09 November 2012 - 06:15 AM
Saludos.
¿Es parecido a cuando uno hace un reporte de antigüedad de saldo?
Me explico:
Deuda de 1-30
Deuda de 31-60
Deuda de 61-90
Deuda de 91-120
Deuda de 121+
¿Es eso?
¿Es parecido a cuando uno hace un reporte de antigüedad de saldo?
Me explico:
Deuda de 1-30
Deuda de 31-60
Deuda de 61-90
Deuda de 91-120
Deuda de 121+
¿Es eso?
#3
Posted 09 November 2012 - 06:48 AM
Hola.
¿ Esto lo quieres como 11 filas de resultado o como 11 campos en una sola fila de resultado ?.
En el primer caso haría una consulta agrupada por cast(Asignaciones / 10 as integer), y en el segundo caso, haría 11 subconsultas.
Saludos.
¿ Esto lo quieres como 11 filas de resultado o como 11 campos en una sola fila de resultado ?.
En el primer caso haría una consulta agrupada por cast(Asignaciones / 10 as integer), y en el segundo caso, haría 11 subconsultas.
Saludos.
#4
Posted 09 November 2012 - 06:48 AM
Pos no, porque eso sería varios campos, sino ordernarlo por uno solo:
MENOS DE 10
F001 10
F003 8
F049 5
MAYOR DE 10
F002 12
F007 12
F012 15
F013 15
...y así sigue
Y como indicas sería:
-10 11-20
F001 10
F002 12
F003 8
F007 12
F012 15
F013 15
F049 5
MENOS DE 10
F001 10
F003 8
F049 5
MAYOR DE 10
F002 12
F007 12
F012 15
F013 15
...y así sigue
Y como indicas sería:
-10 11-20
F001 10
F002 12
F003 8
F007 12
F012 15
F013 15
F049 5
#5
Posted 09 November 2012 - 06:54 AM
Pues la primera opción amigo Marc, dejame hacer unas pruebas como dices.
Saludos.
Saludos.
#6
Posted 09 November 2012 - 08:13 AM
enecumene, creo para este caso usaría el CASE, según el número de clasificados, sería fijo para este caso , creo un SP sería mejor.
Trataría de obtener primero algo como:
F001 10
F003 8
F049 5
F007 12
F012 15
F013 15
F002 12
Posteriormente usaría el CASE y si no imagino mal quedaría algo así (a través de una subconsulta):
IDE MENOR10 MENOR20 MENOR30
F001 10 NULL NULL
F003 8 NULL NULL
F049 5 NULL NULL
F007 NULL 12 NULL
F012 NULL 15 NULL
F013 NULL 15 NULL
F002 NULL 12 NULL
Como apunta Rolphy es como un reporte de antigüedad de saldo.
Nota: Hay que tener en cuenta la versión de firebird, pues el CASE creo es diferente en cada una.
Saludos
Trataría de obtener primero algo como:
F001 10
F003 8
F049 5
F007 12
F012 15
F013 15
F002 12
Posteriormente usaría el CASE y si no imagino mal quedaría algo así (a través de una subconsulta):
IDE MENOR10 MENOR20 MENOR30
F001 10 NULL NULL
F003 8 NULL NULL
F049 5 NULL NULL
F007 NULL 12 NULL
F012 NULL 15 NULL
F013 NULL 15 NULL
F002 NULL 12 NULL
Como apunta Rolphy es como un reporte de antigüedad de saldo.
Nota: Hay que tener en cuenta la versión de firebird, pues el CASE creo es diferente en cada una.
Saludos
#7
Posted 09 November 2012 - 08:46 AM
Hola fredycc, gracias por tu respuesta, tal como le dije a Rolphy no es así como quiere el cliente, más bien como la primera opción de Marc, un sólo campo agrupado y ordenado en un rango de 10 en 10, estoy haciendo las pruebas con el CAST como indicó Marc, luego les dejo los resultados.
Saludos.
Saludos.