Я думаю, что запрос неправильный.
Поле DefaultDimension
в таблице CustTrans
(как и другие) используется для хранения ссылки на набор финансовых измерений и их значений (этодовольно сложная структура данных и логика, поэтому я не буду вдаваться в подробности, но Внедрение системы учета и финансовых измерений (Белая книга) может послужить отправной точкой для дальнейших исследований).
Кажется, ваш клиент интерпретирует финансовое измерение бизнес-единицы как "местоположение" и хочет, чтобы вы сообщали значение этого финансового измерения.Обратите внимание, что термин «местоположение» обычно связан с измерениями запасов в Dynamics AX, а не с финансовыми измерениями.
При фильтрации T.DEFAULTDIMENSION = 5637168346
вы выбираете все записи CustTrans
, которые имеют одинаковый набор финансовых измерений.и значения.
При присоединении к dbo.DimAttributeOMBusinessUnit
каждое финансовое измерение в этом наборе считается финансовым измерением бизнес-единицы.
Для DefaultDimension
значений, которые ссылаются на набор финансовых измерений, которые толькосостоит из измерения бизнес-единицы, запрос будет возвращать только одно (правильное) значение.Но для DefaultDimension
значений, которые ссылаются на набор с несколькими измерениями, запрос интерпретирует каждое измерение как измерение бизнес-единицы, что приводит к неверным результатам.
Если мое предыдущее предположение верно, что ваш клиент хочет сообщить только значенияизмерение бизнес-единицы, вам нужно добавить дополнительный запрос к запросу.Это отфильтровывает dbo.DefaultDimensionView.BackingEntityType
к значению, которое будет соответствовать идентификатору таблицы в таблице dbo.DimAttributeOMBusinessUnit
.
Я хотел бы добавить, что AX уже поставляется с витриной данных для целей BI и содержит несколько кубов BIиз коробки, в том числе один для AR.Management Reporter - еще одно решение, которое можно использовать для составления отчетов о финансовых данных и измерениях.Специально созданная витрина данных может не подходить здесь.