Я пытаюсь вычислить среднее время отказа для каждого актива в таблице рабочих мест. На данный момент я вычисляю следующим образом;Среднее время для расчета сбоя в DAX
Previous ID = CALCULATE(MAX('JobTrackDB Job'[JobId]),FILTER('JobTrackDB Job','JobTrackDB Job'[AssetDescriptionID]=EARLIER('JobTrackDB Job'[AssetDescriptionID]) && 'JobTrackDB Job'[JobId]<EARLIER('JobTrackDB Job'[JobId])))
Затем я возвращаю последнее время окончания текущего задания, когда JobStatus равен 7 (закрыто);
Finish Time = CALCULATE(MAX('JobTrackDB JobDetail'[FinishTime]),'JobTrackDB JobDetail'[JobId],'JobTrackDB JobDetail'[JobStatus]=7)
Тогда я вернуть прежние рабочие места закончить время, когда JobType является 1 (Response, а не сравнивая его с вызовами технического обслуживания);
Previous Finish = CALCULATE(MAX('JobTrackDB Job'[Finish Time]),FILTER('JobTrackDB Job','JobTrackDB Job'[AssetDescriptionID]=EARLIER('JobTrackDB Job'[AssetDescriptionID]) && 'JobTrackDB Job'[Finish Time]<EARLIER('JobTrackDB Job'[Finish Time]) && EARLIER('JobTrackDB Job'[JobTypeID])=1))
Затем я вычисляю время между отказами, где также игнорирую ошибочные значения;
Time between failure = IF([Previous Finish]=BLANK(),BLANK(),IF('JobTrackDB Job'[Date Logged]-[Previous Finish]<0,BLANK(),'JobTrackDB Job'[Date Logged]-[Previous Finish]))
Проблема заключается в том, что иногда расчет использует предыдущие задания на техническое обслуживание, хотя я указал JobTypeID = 1 в фильтре. Кроме того, текущий расчет не учитывает время от начала записи до первой работы для этого актива, а также от последнего задания до сегодняшнего дня. Я почесываю голову, пытаясь понять это.
Любые идеи ???
Спасибо, Brent
У вас на самом деле нет JobType = 1 в любом из вычисленных вами вычетов ... –
Sorry, It похоже, был отрезан. – BrentA