DAX for Power BI中的TSQL查询语句

时间:2016-08-28 22:50:23

标签: sql sql-server dax

我正在尝试计算Power BI中使用Where条件的表中的所有行。

我不确定我做错了什么。希望你能帮助我。这是TSQL语法和我想要的结果。当我执行DAX查询时,我什么都没得到。

我需要DAX语句才能工作并生成相同的结果。我在DAX中成功使用NOT IN,但由于某种原因,我错过了IN子句的内容。

TSQL:

SELECT Closed_Date
     , Closed_By
     , Count(*) CompletedTicket_By_Date
FROM Planning.dbo.IT_Support_Ticket
Where Status In ('Complete', 'Closed', 'Cancelled')
Group By Closed_Date
       , Closed_By

DAX:

Ticket Closed Measure = CALCULATE(COUNTROWS(Fact_IT_Support_Ticket)
,FILTER(Fact_IT_Support_Ticket, Fact_IT_Support_Ticket[Status]="Closed"),
Fact_IT_Support_Ticket[Status]="Complete", 
Fact_IT_Support_Ticket[Status]="Cancelled")

1 个答案:

答案 0 :(得分:1)

这可以使用OR运算符||仅使用一个具有多个条件的过滤表达式来完成。

Ticket Closed Measure =
CALCULATE (
    COUNTROWS ( Fact_IT_Support_Ticket ),
    FILTER (
        Fact_IT_Support_Ticket,
        Fact_IT_Support_Ticket[Status] = "Closed"
            || Fact_IT_Support_Ticket[Status] = "Complete"
            || Fact_IT_Support_Ticket[Status] = "Cancelled"
    )
)

如文档中所述,filter函数的第二个参数是每行计算的布尔表达式。请注意,上面的表达式会评估“状态”列中的每个值是CompleteClosedCancelledCOUNTROWS函数仅计算给定上下文中已过滤的行。

REFERENCE

我没有对该解决方案进行过测试但它应该可以使用,请告诉我这是否适合您。