【问题标题】:DAX how to fill missing dates in range (Report builder)DAX 如何在范围内填充缺失的日期(报表生成器)
【发布时间】:2021-06-21 13:13:25
【问题描述】:

我有一个包含 2 列、日期和分数的表格。它最多有 30 个条目,过去 30 天的每一天都有一个。

date score
1.8.2010 19
2.8.2010 21
4.8.2010 14
7.8.2010 10
10.8.2010 14

我的问题是缺少一些日期 - 我想看看:

date score
1.8.2010 19
2.8.2010 21
3.8.2010 0
4.8.2010 14
5.8.2010 0
6.8.2010 0
7.8.2010 10

我需要从单个查询中得到:19,21,9,14,0,0,10,0,0,14... 这意味着缺失的日期用 0 填充。

【问题讨论】:

    标签: date dax reportbuilder3.0


    【解决方案1】:

    假设您有一个日期表和一个 YearMonth 列:

    ScoresALLDates = 
    VAR ScoresMINDate = MIN(ScoresMD[date])
    VAR ScoresMAXDate = MAX(ScoresMD[date])
    VAR ScoresMINYearMonth = YEAR(ScoresMINDate) * 100 + MONTH(ScoresMINDate)
    VAR ScoresMAXYearMonth = YEAR(ScoresMAXDate) * 100 + MONTH(ScoresMAXDate)
    VAR DatesInRange = 
    CALCULATETABLE(VALUES(Dates[Date]),
        Dates[YearMonth]>=ScoresMINYearMonth,
        Dates[YearMonth]<=ScoresMAXYearMonth
        )
    VAR FIllDatesWithoutScores = 
    NATURALLEFTOUTERJOIN(
    DatesInRange,
    TREATAS(ScoresMD,Dates[Date],ScoresMD[score])
    )
    RETURN
    FIllDatesWithoutScores
    

    【讨论】:

      猜你喜欢
      • 2011-04-02
      • 2021-03-19
      • 2015-10-19
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      • 2018-07-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多