У меня есть табличная модель данных SSAS, которая состоит из структуры таблицы фактов и измерений.В этой модели есть измерение Date и измерение Time, на которые ссылается каждая таблица Fact.
Я хотел бы объединить данные Fact из одной таблицы на основе временного интервала в 1 час после определенной строки вдругая таблица фактов с использованием DAX Measure.
Модель выглядит примерно так:
DimDate
+---------+------------+
| DateKey | DateValue |
+---------+------------+
| 0 | 2019-01-01 |
| 1 | 2019-01-02 |
+---------+------------+
DimTime
+---------+-----------+
| TimeKey | TimeValue |
+---------+-----------+
| 0 | 00:25 |
| 1 | 12:05 |
| 2 | 12:15 |
| 3 | 12:30 |
| 4 | 13:00 |
| 5 | 17:20 |
| 6 | 17:50 |
| 7 | 19:35 |
| 8 | 19:45 |
| 9 | 23:50 |
| 10 | 23:55 |
+---------+-----------+
FactEvent
+---------+---------+-----------------+
| DateKey | TimeKey | Type |
+---------+---------+-----------------+
| 0 | 1 | Aggregate | (2019-01-01 12:05)
| 0 | 5 | Aggregate | (2019-01-01 17:20)
| 0 | 7 | Don't Aggregate | (2019-01-01 19:35)
| 0 | 9 | Aggregate | (2019-01-01 23:50)
+---------+---------+-----------------+
FactToAggregate
+---------+---------+-------+
| DateKey | TimeKey | Value |
+---------+---------+-------+
| 0 | 2 | 3 | (2019-01-01 12:15)
| 0 | 3 | 7 | (2019-01-01 12:30)
| 0 | 4 | 5 | (2019-01-01 13:00)
| 0 | 6 | 2 | (2019-01-01 17:50)
| 0 | 8 | 4 | (2019-01-01 19:45)
| 0 | 10 | 4 | (2019-01-01 23:55)
| 1 | 0 | 4 | (2019-01-02 00:25)
+---------+---------+-------+
И результаты, которые я получу, будут следующими:
(Filtered)
+---------+---------+-----------+------------------+------------------+-----+
| DateKey | TimeKey | Type | DateTimeFrom | DateTimeTo | Sum |
+---------+---------+-----------+------------------+------------------+-----+
| 0 | 1 | Aggregate | 2019-01-01 12:05 | 2019-01-01 13:05 | 15 | (Sum of FactToAggregate row 1, 2, 3)
| 0 | 5 | Aggregate | 2019-01-01 17:20 | 2019-01-01 18:20 | 2 | (Sum of FactToAggregate row 4)
| 0 | 9 | Aggregate | 2019-01-01 23:50 | 2019-01-02 00:50 | 8 | (Sum of FactToAggregate row 6, 7)
+---------+---------+-----------+------------------+------------------+-----+
IЯ могу создать таблицу с DAX, которая возвращает соответствующие значения DateTimeFrom
и DateTimeTo
, используя addcolumns
, хотя впоследствии эти столбцы нельзя использовать в filter
, чтобы затем вернуть правильный контекст фильтра для calculate
, выдавая ошибку:
Столбец «DateTimeFrom» не может быть найден или не может использоваться в этом выражении.
Так как я могу использовать соответствующий часовой интервалв качестве фильтра агрегации для возврата относительного sum
?