EVALUATE语句中指定的表达式不是有效的表表达式

时间:2016-12-06 17:41:43

标签: ssas dax ssas-tabular

我正在使用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的错误

请指教。谢谢。

1 个答案:

答案 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] ) ) )

如果有帮助,请告诉我。