Como hago para hacer un select por mes a traves de un campo fecha?

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Karla V.
    Senior Member
    • may
    • 100

    #1

    Como hago para hacer un select por mes a traves de un campo fecha?

    Hola, soy nueva programando en ABAP ¿tengo un campo fecha, cómo hago para filtrar solamente los datos de un mes y año especificos? sin importar el dia
    Yo ahora lo hago con un loop pero se hace muy lento el reporte

    Ahora lo hago Así
    loop at ti_print
    if ti_print-BEDAT+4(2) = nmes and ti_print-BEDAT(4) = nanno.

    Yo en vfp lo ´colocaba todo en la misma sentencia sql, hacía algo como esto
    select * from tabla where BEDAT+4(2) = nmes and BEDAT(4) = nanno.
    Pero en ABAP esto me da error
    que hago?
  • Melandry
    Senior Member
    • ene
    • 110

    #2
    Hola.
    Se me ocurre que si sabes el primer día de mes y el último, con eso accedas en tu select.
    Un saludo.

    Comentario

    • mysmb2
      Senior Member
      • ene
      • 406

      #3
      hola,
      podes hacer un select endselect y dentro la logica de validacion de mes y año. Aunque en rendimiento habria que evaluar para este caso si es mejor hacer el select into table y luego el loop a la tabla interna o con select endselec.

      Saludos.
      Sebastián Chiavia
      http://www.programacionabap.com.ar

      Comentario

      • kibo
        Senior Member
        • may
        • 177

        #4
        Si queres mejorar la performance no hagas el select endselect.

        Originalmente publicado por mysmb2
        hola,
        podes hacer un select endselect y dentro la logica de validacion de mes y año. Aunque en rendimiento habria que evaluar para este caso si es mejor hacer el select into table y luego el loop a la tabla interna o con select endselec.

        Saludos.

        Lo que haria yo son dos variables... por ejemplo, si queres ver los documentos de marzo de 2012 te armas una variable 01032012 y otra que sea 01042014.

        Entonces con un BT en el select te trae los documentos que estan en marzo.

        Si no es asi la solucion entendi mal el problema
        http://diariotitular.com/contacto/

        Comentario

        • Melandry
          Senior Member
          • ene
          • 110

          #5
          A eso mismo me refería yo, crearte dos variables con fecha completa a primer día de mes y último día de mes.
          Si tienes tu fecha y quieres calcular el número de días deesa fecha, o si tienes mes y año hay varias funciones que te dan el número de dias de ese mes concreto:
          HR_E_NUM_OF_DAYS_OF_MONTH
          NUMBER_OF_DAYS_PER_MONTH_GET
          Tu fecha inicio sería a día 1 y tu fecha fin al nº de días que te diga la func.
          Saludos.

          Comentario

          Trabajando...