Ir al contenido


Foto

Algun Howto de "RANK" en Firebird


  • Por favor identifícate para responder
8 respuestas en este tema

#1 ematrix

ematrix

    Member

  • Miembros
  • PipPip
  • 25 mensajes
  • LocationMExico

Escrito 17 junio 2011 - 08:29

Hola Buenos Dias

Me presento mi Nombre es Juan soy de Istmo de tehuantepec, Oaxaca y me integro a este foro que veo muy interesante la experiencia que tiene en Base de datos Firebird, espero dar un pokito de lo que se y recibir lo mejor de ustedes.

Bien

Estoy haciendo mis pininos con la programacion despues de cambiarme de lazarus  hacia C# usando  como base de dato Firebird que es muy bondadoso,
como Novato le busco en goolge Select referenciados sale mas ejemplo de RANK en sqlserver y veo que ya lo tiene integrado, mi

solicitud es: tendran algun ejemplo de RANK, pero con Firebird; para aprender y dominar mas este campo.

de antemano mis agradecimientos.
Saludos.


  • 0

#2 Marc

Marc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.484 mensajes
  • LocationMallorca

Escrito 17 junio 2011 - 09:01

Hola.

Que yo sepa en Firebird no existe esta función RANK. ¿ Puedes poner un ejemplo de lo que quieres lograr ?, seguro que hay formas alternativas de calcular la misma consulta.

Saludos.
  • 0

#3 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.458 mensajes
  • LocationMéxico

Escrito 17 junio 2011 - 09:01

No conozco esa función en Firebird, si nos comentas que es lo que esperas de esa función tal vez haya otra forma de hacer lo que necesitas.

Salud OS


Edito: Vaya, me has ganado por un segundo amigo Marc :D
  • 0

#4 ematrix

ematrix

    Member

  • Miembros
  • PipPip
  • 25 mensajes
  • LocationMExico

Escrito 17 junio 2011 - 09:42

Exacto en Firebird no existe esa Funcion RANK que la verdad te haria mucho mas facil a la hora de armar tus consultas:

Ok. deja armar bien el planteamiento de mi consulta es sobre un sistema de incidencia y sesion de clases por semana de lunes a sabado.

Gracias
Saludos.

  • 0

#5 fredycc

fredycc

    Advanced Member

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

Escrito 17 junio 2011 - 10:04

Hola ematrix, hasta donde he encontrado información esta funcionalidad solo la contempla de momento la versión 3.0 de firebird, aún no me consta, intenté probar con la versión 2.5 pero no funcionó  :( , puedes encontrar al respecto en el siguiente link:

http://asfernandes.b...-functions.html

Saludos.
  • 0

#6 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 17 junio 2011 - 11:06

En efecto como dice Freddy, sólo existe a partir de la versión 3.00, además existe DENSE_RANK.

Saludos.
  • 0

#7 ematrix

ematrix

    Member

  • Miembros
  • PipPip
  • 25 mensajes
  • LocationMExico

Escrito 18 junio 2011 - 10:27

Bien para los que usamos Firebird,

aqui les dejo un link que diferencia hay entre el RANk y DENSE_RANK,
solo que es en Ingles.

Saludos

http://www.sqlserver...mple-using.html
  • 0

#8 cerezo

cerezo

    Newbie

  • Miembros
  • Pip
  • 2 mensajes

Escrito 29 junio 2011 - 06:04

Hola Juan,

Puedes usar bloques de codigo, un ejemplo sencillo:

set term ^;
execute block
returns (orden integer, orden_denso integer, cliente integer, unidades integer)
as
declare old_unidades integer;
begin
  orden= 0;
  orden_denso= 0;
  old_unidades=-1;
  for select f.cliente, count(*) from factura f
      group by f.cliente
      order by 2
      into :cliente, :unidades do begin
    if (old_unidades<>unidades) then
      orden_denso= orden_denso+1; 
    orden= orden+1;
    suspend; 
    old_unidades=unidades;
  end
end
^


Un saludo
  • 0

#9 ematrix

ematrix

    Member

  • Miembros
  • PipPip
  • 25 mensajes
  • LocationMExico

Escrito 29 junio 2011 - 04:46

Cerezo:

Gracias por tu codigo e ingenioso  de como sacar el Rank por Registro; muy interesante.

Saludos

Brother.
  • 0




IP.Board spam blocked by CleanTalk.