Power BI-如果其他字段相等,则查找字段总和

时间:2019-06-05 00:51:00

标签: sql powerbi dax powerbi-desktop

我正在尝试根据“状态”使对象随时间老化。状态之一是“保留”,任何单个对象都可以多次保留。 (DB中的1对多表关系)。我已经合并了Power BI中的两个表,现在我想找到总的保持时间。我有一个SQL查询可以提供给我,但是我不确定如何在Power Bi内执行该操作。

以下是查询:

SELECT
    H.onhold_project,
    SUM(H.onhold_starttime) SUMSTART,
    CASE 
        WHEN SUM(H.onhold_endtime) < SUM(H.onhold_starttime) THEN SUM(H.onhold_endtime) + corefunc.ConvertDateToUnix(GETDATE(), -7)
        WHEN SUM(H.onhold_endtime) IS NULL THEN corefunc.ConvertDateToUnix(GETDATE(), -7)
        ELSE SUM(H.onhold_endtime)
    END SUMEND,
    CASE 
        WHEN SUM(H.onhold_endtime) < SUM(H.onhold_starttime) THEN (SUM(H.onhold_endtime) + corefunc.ConvertDateToUnix(GETDATE(), -7)) - SUM(H.onhold_starttime)
        WHEN SUM(H.onhold_endtime) IS NULL THEN corefunc.ConvertDateToUnix(GETDATE(), -7) - SUM(H.onhold_starttime)
        ELSE SUM(H.onhold_endtime) - SUM(H.onhold_starttime)
    END DURATION
FROM
    proj.onhold H
GROUP BY H.onhold_project

注意:

所有日期均为UNIX时间格式,然后我将其转换为Microsoft时期以进行显示。

ConvertDateToUnix是一个存储函数,可将Microsoft时代时间代码转换为Unix时间戳。

2 个答案:

答案 0 :(得分:0)

如果sql查询提供了您所需要的内容,那么最基本的是,您只需要将集合导出到文件中,通过获取数据将数据加载到powerBI中,然后将所有字段添加到矩阵可视化中。当然,对于持续的业务需求,此过程应该更优雅。

答案 1 :(得分:0)

我最终弄清楚了这一点。 Power BI可以选择使用SQL查询来加载数据。这样,您就可以拥有SQL并报告它。

我相信,另一种我从未尝试过的可行方法是使用View。