#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