У меня есть следующая таблица («Услуги») в PBI:
В таблице содержатся все услуги, предлагаемые клиенту.Служба имеет Start- и EndDate .
Что я пытаюсь сделать, это создать меру, для данной даты или датыrange, возвращает число различных CustomerID: s, получающих услугу в течение этого периода .
Некоторые примеры:
С учетом приведенной выше таблицы и диапазона дат между2019-01-01 и 2019-04-01 мера будет возвращать отличное значение 3 (совпадение для строк № 2, № 4 и № 5).
Предоставление единственной даты 2019-07-01мера будет возвращать отличное значение 3 (потому что строки # 1, # 2, # 3 и # 4 имеют период, заданный Start- и EndDate, совпадающим с этой датой).
В моем отчете мне также нужнобыть в состоянии фильтровать по ServiceTypeID .
Таблица определена следующим образом:
Services =
DATATABLE (
"CustomerID"; INTEGER;
"ServiceTypeID"; INTEGER;
"ServiceStartDate"; DATETIME;
"ServiceEndDate"; DATETIME;
{
{ 1; 10; "2019-06-03"; "2019-09-01" };
{ 2; 12; "2019-01-01"; "2019-12-31" };
{ 2; 10; "2019-05-01"; "2019-09-01" };
{ 3; 8; "2019-02-01"; "2019-08-01" };
{ 4; 10; "2019-03-30"; "2019-06-01" }
}
)
Я попытался определить меру, как в коде ниже, , ноУ меня проблемы с фильтрацией по ServiceTypeID (мера просто показывает значение, как если бы я не применял фильтр для ServiceTypeID).
Number of active services =
CALCULATE (
DISTINCTCOUNT ( 'Services'[CustomerID] );
FILTER (
ALLSELECTED ( 'Services' );
(
MIN ( 'DateTable'[Date] ) >= 'Services'[ServiceStartDate]
&& MIN ( DateTable[Date] ) <= 'Services'[ServiceEndDate]
)
|| (
MAX ( DateTable[Date] ) >= 'Services'[ServiceStartDate]
&& MAX ( DateTable[Date] ) <= 'Services'[ServiceEndDate]
)
)
)
Кто-нибудь знает, что я здесь не так делаю?Любая помощь очень ценится.
С уважением, Питер