DAX Summarize - 按组删除记录

DAX Summarize - drops records on group by

源数据:

DAX:

Total Derived = 
VAR selected_min_date =
    MIN ( 'Date'[Date] )
VAR selected_max_date =
    MAX ( 'Date'[Date] )
VAR vTable =
    SUMMARIZE (
        FILTER (
            MyTable,
            MyTable[PDate] >= selected_min_date
                && MyTable[PDate] <= selected_max_date
        ),
        MyTable[Gcode],
        MyTable[DerTax]
    )
var result = sumx(vTable, MyTable[DerTax])  

RETURN
    Result

我期待的结果是 2644.48,但输出的是 1322.24

哪里做错了。

我得到的结果与下面的相同 sql。

Select GCode, 
       sum(DerTax)
from MyTable 
where PDate >= @datemin and PDate <=@datemax
group by GCode

我认为您还没有掌握 SUMMARIZE 的工作原理。由于您的 Gcode 和 DerTax 条目对于两行中的每一行都是相同的,因此您的 SUMMARIZE 语句将生成仅包含一行的 table,即:

Gcode DerTax
Grp01 1322.24

您应该传递该字段的 聚合,而不是将 DerTax 作为 GroupBy 列传递:

Total Derived: =
VAR selected_min_date =
    MIN( 'Date'[Date] )
VAR selected_max_date =
    MAX( 'Date'[Date] )
VAR vTable =
    SUMMARIZE(
        FILTER(
            MyTable,
            MyTable[PDate] >= selected_min_date
                && MyTable[PDate] <= selected_max_date
        ),
        MyTable[Gcode],
        "Tax", SUM( MyTable[DerTax] )
    )
VAR result =
    SUMX(
        vTable,
        [Tax]
    )
RETURN
    Result