a inserção de um artificial coluna na consulta mdx
-
23-12-2019 - |
Pergunta
a partir de alguns motivos que eu preciso para inserir um artificial ("dummy") de coluna em uma expressão mdx.(a razão é que eu precisa para obter uma consulta com número específico de colunas )
para ilustrate, este é meu exemplo de consulta:
SELECT {[Measures].[AFR],[Measures].[IB],[Measures].[IC All],[Measures].[IC_without_material],[Measures].[Nonconformance_PO],[Measures].[Nonconformance_GPT],[Measures].[PM_GPT_Weighted_Targets],[Measures].[PM_PO_Weighted_Targets], [Measures].[AVG_LC_Costs],[Measures].[AVG_MC_Costs]} ON COLUMNS,
([dim_ProductModel].[PLA].&[SME])
* ORDER( {([dim_ProductModel].[Warranty Group].children)} , ([Measures].[Nonconformance_GPT],[Dim_Date].[Date Full].&[2014-01-01]) ,desc)
* ([dim_ProductModel].[PLA Text].members - [dim_ProductModel].[PLA Text].[All])
* {[Dim_Date].[Date Full].&[2013-01-01]:[Dim_Date].[Date Full].&[2014-01-01]} ON ROWS
FROM [cub_dashboard_spares]
não é muito importante, apenas algumas medidas e crossjoined dimensões.Agora eu precisaria adicionar f.e.2 colunas extras, eu não me importo se isso seria uma medida com null/0 valores ou outro crossjoined dimensão.Posso fazer isso em algum maneira fácil sem necessidade de inserir quaisquer dados no meu cubo?
No sql posso escrever apenas Selecione 0 ou selecione "dummy1", mas aqui não é possível nem em LINHAS, nem nas COLUNAS parte da consulta.
Muito obrigado pela sua ajuda,
Cumprimentos,
Pedro
ps:até agora, eu só poderia inserir alguma medida mais vezes, mas eu estou interessado se há uma possibilidade de inserir realmente "dummy" coluna
Solução
Sua consulta tem a dimensão de medidas em colunas.A maneira mais fácil para estendê-lo por algumas colunas seria repetir a última medida, o número de vezes que você obter o número correto de colunas.
Outra possibilidade, que pode ser mais eficiente no caso de a última medida é complexa para calcular seria a utilização de
WITH member Measures.dummy as NULL
SELECT {[Measures].[AFR],[Measures].[IB],[Measures].[IC All],[Measures].[IC_without_material],[Measures].[Nonconformance_PO],[Measures].[Nonconformance_GPT],[Measures].[PM_GPT_Weighted_Targets],[Measures].[PM_PO_Weighted_Targets], [Measures].[AVG_LC_Costs],[Measures].[AVG_MC_Costs],
Measures.dummy, Measures.dummy, Measures.dummy
}
ON COLUMNS,
([dim_ProductModel].[PLA].&[SME])
* ORDER( {([dim_ProductModel].[Warranty Group].children)} , ([Measures].[Nonconformance_GPT],[Dim_Date].[Date Full].&[2014-01-01]) ,desc)
* ([dim_ProductModel].[PLA Text].members - [dim_ProductModel].[PLA Text].[All])
* {[Dim_Date].[Date Full].&[2013-01-01]:[Dim_Date].[Date Full].&[2014-01-01]}
ON ROWS
FROM [cub_dashboard_spares]
eu.e.a adição de um manequim medida que não deve precisar de muito computação como muitas vezes como você precisa para o fim das colunas.