Jump to content


Photo

Consulta de 10 en 10 Firebird


  • Please log in to reply
6 replies to this topic

#1 enecumene

enecumene

    Webmaster

  • Administrador
  • 7419 posts
  • LocationRepública Dominicana

Posted 09 November 2012 - 05:29 AM

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.
  • 0

#2 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2092 posts
  • LocationRepública Dominicana

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?
  • 0

#3 Marc

Marc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1484 posts
  • LocationMallorca

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.
  • 0

#4 enecumene

enecumene

    Webmaster

  • Administrador
  • 7419 posts
  • LocationRepública Dominicana

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

  • 0

#5 enecumene

enecumene

    Webmaster

  • Administrador
  • 7419 posts
  • LocationRepública Dominicana

Posted 09 November 2012 - 06:54 AM

Pues la primera opción amigo Marc, dejame hacer unas pruebas como dices.

Saludos.
  • 0

#6 fredycc

fredycc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 874 posts
  • LocationOaxaca, México

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  ^o|, 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  8o| 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
  • 0

#7 enecumene

enecumene

    Webmaster

  • Administrador
  • 7419 posts
  • LocationRepública Dominicana

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.
  • 0




IP.Board spam blocked by CleanTalk.