【问题标题】:Implementing where condition in DAX在 DAX 中实现 where 条件
【发布时间】:2021-08-20 14:40:56
【问题描述】:

我有一个场景,我想在 Dax 中实现一个 BELOW SQL 查询:

select count(distinct a.ID)
from Table1 a
join Table2 b
  on a.ID=b.ID
where a.[In_Time] = "No" OR b.[In Time] = "No"

如何使用 Dax 实现?

【问题讨论】:

  • DISTINCT 不是一个函数,它是一个集合量词。跳过那些多余的括号以避免混淆 - 即只需执行COUNT(DISTINCT a.ID)
  • @jarlh 我看到你每天至少发表一次此评论,哈哈

标签: sql powerbi dax ssas-tabular


【解决方案1】:

您没有详细说明 t1 和 t2 之间的关系是什么,以及您是否希望通过 DAX query 或 DAX measure 实现这一点。

假设您希望通过DAX query 返回此信息,而t1t2 之间没有关系,则将遵循等效的DAX 查询。它加入过滤后的t1 并根据所需条件过滤t2

t1

| id | inTime |
|----|--------|
| 1  | yes    |
| 1  | no     |
| 2  | no     |
| 3  | no     |
| 4  | no     |
| 5  | no     |
| 6  | no     |

t2

| id | inTime |
|----|--------|
| 1  | yes    |
| 1  | no     |
| 2  | yes    |
| 3  | no     |
| 5  | no     |

Query

Table =
VAR _1 =
    DISTINCT (
        NATURALINNERJOIN (
            SELECTCOLUMNS (
                FILTER ( t1, t1[inTime] = "no" ),
                "id", t1[id] + 0,
                "inTIme", t1[inTime] & ""
            ),
            SELECTCOLUMNS (
                FILTER ( t2, t2[inTim] = "no" ),
                "id", t2[id] + 0,
                "inTIme", t2[inTim] & ""
            )
        )
    )
VAR _2 =
    ROW ( "count", COUNTX ( _1, [id] ) )
RETURN
    _2

returns 以下为VAR _1

| id | inTime |
|----|--------|
| 1  | no     |
| 3  | no     |
| 5  | no     |

【讨论】:

  • 抱歉信息太少了,我想在 DAX 度量中实现这一点
  • 改进你的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
相关资源
最近更新 更多