PowerBI работает по общей формуле - PullRequest
0 голосов
/ 21 июня 2019

У меня есть набор данных OvertimeHours с EMPLID, checkdate и NumberOfHours (и другими полями). Мне нужен промежуточный итог NumberOfHours для каждого сотрудника по дате проверки. Я попытался использовать опцию Quick Measure, но это позволяет только один столбец, и у меня есть два. Я не хочу, чтобы мера пересчитывалась при применении фильтров. В конечном итоге я пытаюсь идентифицировать записи за первые 6 часов сверхурочной работы, отработанной для каждой проверки, чтобы они могли получить категорию OCB, а все сверхурочные за первые 6 часов - это OTP, и они не должны быть точными ( как показано в выходных данных ниже). Я работаю с Power BI только около месяца, и это довольно сложная (для меня) формула, чтобы понять ...

EMPLID        CheckDate   WkDate   NumberOfHours   RunningTotal     Category
124             1/1/19    12/20/18    5               5             OCB
124             1/1/19    12/21/18    9               14            OTP
125             1/1/19    12/20/18    3               3             OCB
125             1/1/19    12/20/18    2               5             OCB
125             1/1/19    12/22/18    2               7             OTP
124             1/15/19   1/8/19      3               3             OCB

* Отредактировано для добавления WkDate.

Edit: Я настроил свой запрос так, чтобы у меня были промежуточная сумма и счетчик последовательных операций: enter image description here

Используя первые 12 записей, я хочу получить следующие результаты:

enter image description here

Я могу сделать это в запросе, если это проще всего, или если есть способ использовать DAX в PowerBI с этим набором данных, теперь, когда у меня есть последовательный фрагмент, я тоже могу это сделать.

1 Ответ

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

Я получил это в запросе:

select  r.CheckDate, 
        r.EMPLID, 
        case 
            when PayrollRunningOTHours <= 6 
                then PayrollRunningOTHours 
            else 6 
        end as OCBHours, 
        case 
            when PayRollRunningOTHours > 6 
                then PayRollRunningOTHours - 6 
        end as OTPHours 
from    #rollingtotal r
inner   
join    lastone l 
        on r.CheckDate = l.CheckDate 
        and r.EMPLID = l.EMPLID 
        and r.OTCounter = l.lastRec
order   by r.emplid, 
        r.CheckDate, 
        r.OTCounter
...