Comparacion de registros consecutivos

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Alfredosite
    Senior Member
    • jul
    • 135

    #1

    Comparacion de registros consecutivos

    HOla amigos espero me puedna ayudar, tengo el siguiente caso tal vez exista una función que se encargue de comparar el valor de registro con el siguiente registro consecutivo de una tabla.

    Lo que necesito es calcular los dias que por ejemplo un trabajador no tuvo contrato, paso a graficar el caso (IT16).

    Código HTML:
         Begda	   Endda       Tip_con   Duracion
    1 01.01.2001	31.01.2001	A	31
    2 01.02.2001	28.02.2001	A	28
    3 01.03.2001	31.03.2001	B	31
    4 01.05.2001	31.05.2001	B	31
    5 01.06.2001	31.07.2001	B	61
    Como pueden ver tengo contratos (por asi decir) que duran una cantidad de tiempo por ejemplo mis registros 1 y 2 son consecutivos enero y febrero
    es decir mi endda del 1er registro 31.01.2001 + 1 es igual al begda de 2do registro 01.02.2001..
    Es decir quiero sersiorarme que el otro contrato empieze imediatamente al dia siguiente de haber terminado el otro.

    Y detectar que los meses o tiempo que estaba sin contrato en este caso de mi ejemplo seria entre 3er y 4to registro (todo ABRIL).

    En conclusion quiero comparar mi endda de un registro y compararlo con el segundo registro, que cumpla con la condicion de que el endda del 1 registro + 1dia debe ser el endda del registro consecutivo....se puedo encontrar la diferencias de dias con la funcion HR_HK_DIFF_BT_2_DATES, pero nose me ocurre como comparar los registros consecutivos espero me disculpen la pregunta

    Espero me puedan ayudar con esto ...muchas gracias
    Editado por última vez por Alfredosite; 08/09/2008, 20:37:36.
    Saludos Cordiales,
    Alfredo Pastor Avendaño
    SAP - Consultant HCM
  • Alfredosite
    Senior Member
    • jul
    • 135

    #2
    Bueno ya encontre una forma de controlarlo. hice esto...

    DATA: v_begda LIKE sy-datum,
    v_endda LIKE sy-datum,
    n_consec TYPE i VALUE 1.

    SORT p0016 BY endda ASCENDING.
    LOOP AT p0016 WHERE pernr EQ pernr-pernr.
    v_endda = p0016-endda + 1.
    n_consec = n_consec + 1 .

    READ TABLE p0016 INDEX n_consec.
    v_begda = p0016-begda.
    CLEAR p0016.
    IF v_begda EQ v_endda.
    Uso rutinas necesarias para la cantidad de dias entre als fechas
    ENDIF.

    ENDLOOP.

    Muchas gracias cualquier otro aporte bienvenido
    Saludos Cordiales,
    Alfredo Pastor Avendaño
    SAP - Consultant HCM

    Comentario

    • DavidXD_XD
      Moderator
      • ago
      • 1255

      #3
      Hola Alfredo ^^, a mi tbm me paso ese caso he hice lo mismo, cree un contador y le aumente en una unidad y relei la misma tabla al cual le hacia el LOOP ...
      David Carballido Córdova

      Comentario

      Trabajando...