我正在使用Visual Studio中的Tabular多维数据集。 我在多维数据集中有一个DAX公式可以正常工作:
SUMX(FILTER(factFHA, factFHA[EventCd]="D"), [LoanCount])
当我在SSMS中运行时:
evaluate(
SUMX(FILTER(factFHA, factFHA[EventCd]="D"), [LoanCount])
)
失败并出现以下错误:
Query(1,1)EVALUATE语句中指定的表达式不是有效的表表达式。
我有两个其他公式都可以正常工作:
evaluate(factFHA)
evaluate(filter('factFHA', [EventCd] = "D"))
我无法通过SUMX
FILTER
的错误
请指教。谢谢。
答案 0 :(得分:1)
EVALUATE函数仅在传递返回表的表或表达式时才有效,您传递的是返回标量值(Decimal)的SUMX函数。
使用DAX编写查询的语法如下:
[DEFINE { MEASURE <tableName>[<name>] = <expression> } -> Define a session (optional) measure
EVALUATE <table> --> Generate a table using your measures or creating calculated columns
[ORDER BY {<expression> [{ASC | DESC}]}[, …] --> Order the returned table by a passed column or expression
[START AT {<value>|<parameter>} [, …]]] --> This is an ORDER BY Sub-clause to define from which the query results will start.
定义您的度量,然后使用然后在EVALUATE子句中使用评估为表的表达式。
DEFINE
MEASURE factFHA[MyMeasure] =
SUMX ( FILTER ( factFHA, factFHA[EventCd] = "D" ), [LoanCount] )
EVALUATE
( SUMMARIZE ( FILTER ( factFHA, factFHA[EventCd] = "D" ), factFHA[AnyColumnToGroup]
, "Sum of MyMeasure", SUM ( factFHA[MyMeasure] ) ) )
如果有帮助,请告诉我。