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
源数据:
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