Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-07-2007
Guillermosalva Guillermosalva is offline
Miembro
 
Registrado: oct 2006
Posts: 11
Poder: 0
Guillermosalva Va por buen camino
Consulta de valores consecutivos

Hola necesito saber si hay alguna forma de con una consulta descubrir si hay 3 valores consecutivos
A modo de ejemplo. En mi tabla tengo nombres y fechas de nacimiento, quiero saber si nacieron 3 con el mismo nombre(pepe) consecutivamente.

Nombre Fecha nac
pepe 16/02/1990
pepe 17/02/1990
pepe 18/02/1990
juan 19/02/1990
Responder Con Cita
  #2  
Antiguo 26-07-2007
Avatar de Ivanzinho
[Ivanzinho] Ivanzinho is offline
Miembro Premium
 
Registrado: ene 2005
Ubicación: Galicia
Posts: 595
Poder: 20
Ivanzinho Va por buen camino
¿Que motor de bases de datos utilizas? Así de primeras se me ocurre que lo puedes hacer en un procedimiento almacenado.

Un saúdo.
__________________
Si no lees esto no vivirás tranquilo
Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao)
Responder Con Cita
  #3  
Antiguo 26-07-2007
Guillermosalva Guillermosalva is offline
Miembro
 
Registrado: oct 2006
Posts: 11
Poder: 0
Guillermosalva Va por buen camino
Utilizo oracle, me olvide de decir que ademas necesito las fechas de los 3 consecutivos que encuentro.
Responder Con Cita
  #4  
Antiguo 26-07-2007
Avatar de Ivanzinho
[Ivanzinho] Ivanzinho is offline
Miembro Premium
 
Registrado: ene 2005
Ubicación: Galicia
Posts: 595
Poder: 20
Ivanzinho Va por buen camino
Nunca he usado oracle, pero te comento lo que puedes hacer:

Seleccionas los distintos nombres que hai en la BD con count > 2, luego recorres los registros de cada unos de estos nombres comprobando las fechas y devolviendo los que cumplan los requisitos.

Seguro que hay formas mejores de hacerlo, pero así de primeras es lo que se me ocurre.

Un saúdo.
__________________
Si no lees esto no vivirás tranquilo
Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao)
Responder Con Cita
  #5  
Antiguo 26-07-2007
Guillermosalva Guillermosalva is offline
Miembro
 
Registrado: oct 2006
Posts: 11
Poder: 0
Guillermosalva Va por buen camino
Habia pensado algo parecido pero el problema es que algunas veces hay 3 registros pero no son consecutivos.
Responder Con Cita
  #6  
Antiguo 27-07-2007
Avatar de Ivanzinho
[Ivanzinho] Ivanzinho is offline
Miembro Premium
 
Registrado: ene 2005
Ubicación: Galicia
Posts: 595
Poder: 20
Ivanzinho Va por buen camino
Cita:
Empezado por Guillermosalva
Habia pensado algo parecido pero el problema es que algunas veces hay 3 registros pero no son consecutivos.
Por eso mismo es por lo que te comento que despues de seleccionar los valores que tengan 3 o mas entradas en la base de datos debes recorrerlos comprobando las fechas. La cosa quedaría algo así (nunca trabaje en oracle por lo que te pongo la notación de firebird).
Código SQL [-]
parametros de salida
  fecha1, fecha2, fecha3 : Date;
  nombre : VarChar;
Variables
  fecha : Date;
for select nombre 
    from tabla
    group by nombre
    having count(*) > 2 
    into :nombre do
  begin
    fecha1 = null;
    fecha2 = null;
    fecha3 = null;
    for select fecha 
        from tabla
        where nombre = :nombre
        order by fecha
        into :fecha do begin
      begin
        fecha1 = fecha2;
        fecha2 = fecha3;
        fecha1 = fecha;

        if ((fecha1 = fecha2 + 1) and (fecha2 = fecha3 + 1)) then
          suspend;
      end
  end

Un saúdo
__________________
Si no lees esto no vivirás tranquilo
Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao)
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
Consulta entre valores rruffino Conexión con bases de datos 1 11-05-2007 03:25:34
Consulta con los valores de varios combos fidel SQL 2 29-01-2007 21:05:43
Bloques De Numeros Consecutivos dany2006 C++ Builder 5 15-11-2006 21:06:16
Inserción de datos consecutivos pallyJD Tablas planas 1 27-10-2006 18:22:34
Campos de consulta con valores NAN ElDuc SQL 1 12-09-2005 10:28:59


La franja horaria es GMT +2. Ahora son las 22:39:04.


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