Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
4 years ago

SQL Calcular semana financiera

Hola

Me gustaría calcular la semana financiera en mi tabla calanedar. El año financiero comienza a partir de julio y termina en junio.

Tengo algunas reglas sobre la última semana del año financiero.

si la semana que tiene días de junio y julio tiene 3 o más días en junio, entonces es la semana 53, y luego restablezca la semana de seguimiento a 1 como las fechas a continuación:

2022-05-05_15-28-29.png

si la semana que tiene días de junio y julio tiene 3 o más días en julio, entonces es la semana 1, y luego restablezca las semanas siguientes de acuerdo como las siguientes fechas:

2022-05-05_15-28-29.png

¿Puedes por favor ayudar?

gracias.

6 Replies

  • @sabd , estas son algunas columnas que necesitas

    Año de inicio = STARTOFYEAR('Date'[Date],"6/30") //
    Año de inicio = if(mes([Fecha]) <7, AÑO([Fecha]) -1, AÑO([Fecha]) )
    WeekDay = WEEKDAY([Fecha],2) //monday
    Inicio de la semana = [Fecha] -[WeekDay]+1 //monday

    o

    Fecha de inicio de la semana = 'Fecha'[Fecha]+-1*WEEKDAY('Fecha'[Fecha],2)+1


    Año FY = AÑO('Fecha'[Año de inicio]) // use el año final
    Semana FY = COCIENTE(DATEDIFF(Minx(FILTER('Fecha',[Año FY]=ANTERIOR([Año FY])),'Fecha'[Inicio de la semana]),[Fecha],[Fecha],DÍA),7)+1

    Algunos de ellos se pueden combinar en una columna usando var

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      @sabd , Espero que tenga una fecha y un inicio del año fiscal, y la columna del año fiscal

      para FY

      caso cuando datepart(Month,[Date])<7 then datepart(Year, [Date])-1 else datepart(Year, [Date]) end

      Semana fy

      datediff(Day , Min(Dateadd(Day, -1* DATEPART(WEEKDAY, [Date]) +1, [Date] )) OVER (PARTITION BY [FY Year] ) , [Date])/7

      • Syndicate_Admin's avatar
        Syndicate_Admin
        Icon for Administrator rankAdministrator

        @amitchandak , gracias por su respuesta.

        Tengo FY, pero no estoy seguro de qué quieres decir con FY start? y ¿dónde usas FY start?

        He creado la semana FY basada en su sql, pero no es correcto, me pongo a continuación:

        ¿por qué obtengo 0 para el 20 y 21 de junio, debería ser la semana 51?

        y solo el 29 y 30 de junio etiquetados como semana 2.

        2022-05-06_8-13-42.png