Power BI — Как вы вычисляете первый день недели?

#sql #powerbi #dax

#sql #powerbi #dax

Вопрос:

Итак, вот мой сценарий. Если это 20-я неделя 2016 года, мне нужно знать, что это 8/5/2016. Это соответствует для остальной части недели. То же самое касается всей недели.

 Week#   WeekDate
29     7/10/2016 0:00
30     7/17/2016 0:00
28     7/3/2016 0:00
31     7/24/2016 0:00
32     7/31/2016 0:00
33     8/7/2016 0:00
34     8/14/2016 0:00
  

Комментарии:

1. Есть ли у вас таблица календаря / дат в вашей модели?

2. Только что обновил билет с помощью модели таблицы календаря / даты

3. Я бы также рекомендовал таблицу календаря, куда вы можете добавлять вычисляемые столбцы. Здесь могут быть очень полезны функции времени, такие как День недели: msdn.microsoft.com/en-us/library/ee634550.aspx И количество недель: msdn.microsoft.com/en-us/library/ee634572.aspx чтобы решить вашу проблему

4. Да, вы правы, Неби. Спасибо за помощь в этом.

Ответ №1:

 dateadd(DAY,-(datepart(weekday,DATEADD(WEEK,30-1,CAST('2016'||'-1-1' AS DATE)))-1),DATEADD(WEEK,30-1,CAST('2016'||'-1-1' AS DATE)))
  

Это работает с Intersystems. Вам нужно будет создать свою собственную дату с известным значением года и заменить ’30’ на известное значение недели из вашей таблицы

Ответ №2:

Спасибо за вклад, я сделал что-то вроде приведенного ниже, и это сработало. При этом воскресенье остается первым днем недели.

Если вы хотите использовать понедельник или вторник, добавьте 2, 3 в приведенное ниже вычисление числа недель.

 DATE(SampleTableWithDate.Year],1,1) - WEEKDAY(DATE(SampleTableWithDate.Year,1,1),1)    (WEEKNUM(SampleTableWithDate.Date)-1)*7   1

Find the First Date of this Year    -  First Day of Week This Year                     Add Weeks till Date