繁体   English   中英

Power BI 合并来自两个 SQL-Server 表的结果

[英]Power BI combine results from two SQL-Server tables

在使用 Power BI 几个月后,我们(用户组)遇到了一个我们不太清楚的问题。

我们使用带有远程 SQL-Server 数据源的 Power-BI,我们通过直接查询访问数据源。

假设我们有 2 个表,如下所示 -

Table name: Issue
Column: 
    ResolutionTime(Date/Time) 
    IssueID(Unique Numbers)

Table Name: WorkItem
Column: 
    start (Date/Time)
    end (Date/Time)
    IssueID (Unique Numbers, Foreign Key to "Issue" table)

表 WorkItem 还包含一个计算列“WorkTime”,它使用此 DAX 表达式,如下所示 -

WorkTime = WorkItem[end] - WorkItem[start]

这两个表是通过具有双向 1:n 关系的 Power-Bi 配置的,可以使用“IssueID”作为相关列查询该关系以收集分配给“问题”条目的所有“WorkItem”。

为了能够计算每个“WorkItem”的聚合“工作时间”,我们使用一个新的/计算的表和以下 DAX 表达式来聚合为单个“问题”投入的总时间:

SumWork =
SUMMARIZE(
  WorkItem, WorkItem[IssueID], "All work per item", SUM(WorkItem[WorkTime])
)

上表计算了特定问题的总投入工作时间,根据“IssueID”外键对结果进行分组/汇总。 这个新的计算表还配置为与“问题”表有关系,这次是“1:1”关系,使用 IssueID 作为相关列。

现在计算问题处理的时间 + 解决时间应该总结在“问题”内的计算列中,但这不起作用:

ResolutionAndWorkTime = Issue[ResolutionTime] + SumWork["All work per item"]

但是上面的 DAX 表达式编译失败,因为它总是报告它返回“多个结果”,因此不是单一结果。 但这令人惊讶,因为这两个表(“Issue”和“SumWork”以“1:1”关系相互关联)。

表:

Issues
IssueID     ResolutionTime     ResolutionAndWorkTime
1           03:20:20            ???
2           01:20:20            ???
3           00:20:20            ???

WorkItem
IssueID     start                  end                   WorkTime
1           1-2-2020 3:20:20       1-2-2020 3:25:20      00:05:00
1           2-2-2020 6:20:20       2-2-2020 7:20:20      01:00:00
3           1-3-2020 3:20:20       1-3-2020 3:29:20      00:09:00

任何想法要寻找什么? 数据类型? 表定义? 表关系? 我们检查了其他 Stackoverflow 问题/答案,但到目前为止没有找到好的想法。

请注意,如果使用直接查询,Power BI 的许多连接/合并功能将不可用,因此连接表并不是一个真正的选择(我们认为)。

对于新的计算列,您需要以下代码。

访问此处以了解更多有关RELATED的信息。

ResolutionAndWorkTime = Issues[ResolutionTime] + RELATED(SumWork[All work per item])

根据“mkRabbani”(参见其他答案)提供的输入,我们调查了为什么“RELATED”没有按预期显示 function。 问题起源于对数据库的访问。 正如之前所怀疑的那样,一旦数据库访问切换到“导入”而不是“直接查询”,function 就会提供预期的结果。

作为解决方法,我们现在使用传统数据库视图连接 SQL 服务器内的数据。 当然这只适用于数据库由数据分析团队控制的场景。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM