2017-02-20 8 views
0

Мой MDX содержит уже NON EMPTY ключевое слово, но в докладе я все еще получаю поле типа object, потому что первая строка пуста в OLAP:поле имеет тип объекта после извлечения из MDX

select NON EMPTY Hierarchize(Crossjoin({[Measures].[engagement]}, Union(Union(Union(Union(Crossjoin({[structure].[All structures]}, {[temps].[2016]}), Crossjoin({[structure].[All structures]}, {[temps].[2015]})), Crossjoin({[structure].[All structures]}, {[temps].[2014]})), Crossjoin({[structure].[All structures]}, {[temps].[2013]})), Crossjoin({[structure].[All structures]}, {[temps].[2012]})))) ON COLUMNS, 
    NON EMPTY {[soa].[00-01-0-030-00000], [soa].[00-01-0-100-00000], [soa].[00-01-0-120-00000], [soa].[00-01-0-680-00000], [soa].[00-01-0-710-00000], [soa].[00-01-0-720-00000], [soa].[00-01-0-730-00000]} ON ROWS 
from [cubExecution] 

OLAP, как это:

enter image description here

обновление:

здесь поле в дизайнере отчетов:

enter image description here

Так как сделать поле, чтобы быть типа Double?

+0

Непонятно, что вам нужно: что вы подавали? –

+0

Поле, представляющее меру для столбца 2013. – pheromix

ответ

0

Таким образом, похоже, что первый элемент в поле используется для определения типа.

Вы можете confirmif, что, безусловно, имеет место, выполнив следующие действия, и если оба теперь типа двойной, то да, что верхняя пустая клетка создает тип объекта:

select 
    NON EMPTY 
    Hierarchize(
     Crossjoin(
     {[Measures].[engagement]},  
     Union(
      Union(
      Union(
       Union(
       Crossjoin(
        {[structure].[All structures]}, 
        {[temps].[2016]} 
       ), 
       Crossjoin(
        {[structure].[All structures]}, 
        {[temps].[2015]} 
       ) 
       ), 
       Crossjoin(
       {[structure].[All structures]}, 
       {[temps].[2014]} 
       ) 
      ), 
      Crossjoin(
       {[structure].[All structures]}, 
       {[temps].[2013]} 
      ) 
      ), 
      Crossjoin(
      {[structure].[All structures]}, 
      {[temps].[2012]} 
      ) 
     ) 
     ) 
    ) ON COLUMNS, 
    NON EMPTY 
     { 
     //[soa].[00-01-0-030-00000], //<<commented out 
     [soa].[00-01-0-100-00000], 
     [soa].[00-01-0-120-00000], 
     [soa].[00-01-0-680-00000], 
     [soa].[00-01-0-710-00000], 
     [soa].[00-01-0-720-00000], 
     [soa].[00-01-0-730-00000]} ON ROWS 
    from [cubExecution]; 

Пустое пространство, как правило, ваш друг в кубе и запрос, поскольку он заставляет вещи выполняться быстро, поэтому принудительное удаление нуля - это не очень хорошая практика, но вы можете изменить значение пустым до нуля, но теперь вы получите много ячеек столбцов, которые раньше не существовали, но ваша проблема с типизацией может фиксироваться?

WITH 
[Measures].[engagementX] AS 
    CoalesceEmpty([Measures].[engagement],0) 
SELECT 
    NON EMPTY 
    Hierarchize(
     Crossjoin(
     {[Measures].[engagementX]},  
     Union(
      Union(
      Union(
       Union(
       Crossjoin(
        {[structure].[All structures]}, 
        {[temps].[2016]} 
       ), 
       Crossjoin(
        {[structure].[All structures]}, 
        {[temps].[2015]} 
       ) 
       ), 
       Crossjoin(
       {[structure].[All structures]}, 
       {[temps].[2014]} 
       ) 
      ), 
      Crossjoin(
       {[structure].[All structures]}, 
       {[temps].[2013]} 
      ) 
      ), 
      Crossjoin(
      {[structure].[All structures]}, 
      {[temps].[2012]} 
      ) 
     ) 
     ) 
    ) ON COLUMNS, 
    NON EMPTY 
     { 
     [soa].[00-01-0-030-00000], 
     [soa].[00-01-0-100-00000], 
     [soa].[00-01-0-120-00000], 
     [soa].[00-01-0-680-00000], 
     [soa].[00-01-0-710-00000], 
     [soa].[00-01-0-720-00000], 
     [soa].[00-01-0-730-00000]} ON ROWS 
    from [cubExecution]; 

 Смежные вопросы

  • Нет связанных вопросов^_^