Power BI - найти сумму полей, если другие поля равны - PullRequest
0 голосов
/ 05 июня 2019

Я пытаюсь получить старение объектов с течением времени, за «статус».Одним из состояний является «На удержании», любой отдельный объект может быть на удержании несколько раз.(Отношение 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.

1 Ответ

0 голосов
/ 05 июня 2019

Если SQL-запрос дает то, что вам нужно, в большинстве случаев вам просто нужно экспортировать набор в файл, загрузить данные в powerBI через get data, а затем добавить все поля в матричную визуализацию.Конечно, этот процесс должен быть более элегантным для текущих потребностей бизнеса.

...