DAX查询从数据集中排除记录

时间:2016-01-18 18:03:51

标签: sql ssas dax ssas-tabular

我必须编写一个查询来使用DAX排除记录。现在我不确定如何根据特定条件排除记录。

例如,我必须过滤数据并显示除纽约以外的所有州的公司的员工数据。我将如何实现这一目标?

似乎我只能应用过滤器来显示特定数据,而不是像在SQL中那样进行排除。在SQL中,我们可以使用NOT IN (...)子句来做到这一点。 DAX中有类似的东西吗?

非常感谢任何帮助。谢谢!

2 个答案:

答案 0 :(得分:2)

EVALUATE
CALCULATETABLE(
    <table expression>
    ,<table>[State] <> "New York"
)

第一个参数不必是表格文字,但可以是返回表格的函数。

第二个参数应该在包含[State]字段的表上,我们只是排除“New York”。 CALCULATETABLE()需要1-N个参数。参数2-N是所有过滤器,可以是表格或简单谓词,如上例所示。所有过滤器参数都以逻辑和。

进行评估

答案 1 :(得分:0)

如果状态是纽约,您似乎只需要一个过滤器,但如果您需要等同于SQL NOT IN的东西,则可以使用嵌套的AND函数。例如

EVALUATE
CALCULATETABLE(
    'EMPLOYEE',
     AND('EMPLOYEE'[STATE] <> "New York", AND('EMPLOYEE'[STATE] <> 
    "VIRGINIA", 'EMPLOYEE'[STATE] <> "MARYLAND"))
)