Forum Discussion
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:
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:
¿Puedes por favor ayudar?
gracias.
6 Replies
- Syndicate_Admin
Administrator
@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 //mondayo
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)+1Algunos de ellos se pueden combinar en una columna usando var
- Syndicate_Admin
Administrator
- Syndicate_Admin
Administrator
¿Está esto en DAX? si es así, ¿puedo tenerlo en SQL?
- Syndicate_Admin
Administrator
@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
Administrator
@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.