如何将数据汇总到 table 按日期过滤

How to summarize data into table filtering by dates

我需要总结 dax table 并按从上次 EffectiveDate 回溯 5 个月的日期范围过滤它,即 7/27/2019

所以我的dax表达式:

TestTable1 = 
VAR LastEffDate = LASTDATE(fact_Premium[EffectiveDate])  // --  7/27/2019
RETURN 
SUMMARIZE(
      FILTER(dim_Date, DATEDIFF(DATEADD(STARTOFMONTH(LastEffDate), -5,MONTH), ENDOFMONTH(LastEffDate), MONTH)),
      dim_Date[Year Month],
       "Premium", [Ttl WP]
       ) 

但出于某种原因,它给我带来了数据集中所有年份的数据:

我也试过:

TestTable1 = 
    VAR LastEffDate = LASTDATE(fact_Premium[EffectiveDate])  // --  7/27/2019
RETURN 
    SUMMARIZE (
        FILTER (
             dim_Date, 
             DATESBETWEEN(dim_Date[Date],
                 DATE(2019,5,1),               
                 DATE(2019,6,1)
             )
        ),
        dim_Date[Year Month],
        "Premium", [Ttl WP]
    ) 

但是它给我一个错误:

A table of multiple values was supplied where a single value was expected.

我是不是漏掉了什么?

您的过滤器表达式应该使用 DATESBETWEEN 而不是 datediff:

TestTable1 = 
    VAR LastEffDate = LASTDATE(fact_Premium[EffectiveDate])  // --  7/27/2019
RETURN 
    SUMMARIZE (
        FILTER (
             dim_Date, 
             DATESBETWEEN(
                 //expression for start date, 
                 //expression for end date
             )
        ),
        dim_Date[Year Month],
        "Premium", [Ttl WP]
    ) 

我认为您仍然缺少汇总您的 Premium,

SUM(Ttl WP)

TestTable1 =
VAR LastEffDate =
    LASTDATE ( fact_Premium[EffectiveDate] ) // --  7/27/2019
RETURN
    SUMMARIZE (
        FILTER (
            dim_Date,
            DATESBETWEEN ( dim_Date[Date], DATE ( 2019, 5, 1 ), DATE ( 2019, 6, 1 ) )
        ),
        dim_Date[Year Month],
        "Premium", SUM ( [Ttl WP] ) ---- Need to aggregate here
    )