MDX Query использует самое последнее значение - PullRequest
0 голосов
/ 23 февраля 2011

Привет
Я не эксперт по MDX, поэтому мне нужна помощь, скажем, у меня есть куб со следующими данными (упрощенно)
Значение кода EE месяца * EE

jan   A  1      100  
feb   A  1      200  
Mar   A  2      400  
Jan   B  1      150  
Feb   B  1      100  
Jan   C  2      100  
Mar   C  2      650  

месяца, EE иКокод - это все отдельные измерения
EE Измененный кокод в марте, поэтому я хочу сообщить о его итоговой сумме с начала года
Результат в отчете, который я хочу получить:

EE  CoCode  Total  
C   2       750  
A   2       700  
B   1       250  

Не уверен, что решение в
MDX (используя currentmember или что-то для CompanyCode),
куб (создайте новый атрибут в CompanyCode Dimennsion для currentCoCode)
или в группировке в отчете.
Спасибо, Пол
Фактический MDX, который я используюиспользует параметры и немного сложнее, как показано ниже

="SELECT NON EMPTY { [Measures].[ValueCode] } ON COLUMNS,   
topcount(NONEMPTY ([Dim E Eno].[EE No].[EE No].ALLMEMBERS * [Dim E Eno].[Sur Name].[Sur Name].ALLMEMBERS * [Dim E Eno].[First Name].[First Name].ALLMEMBERS * [DIM Cost Centres].[Cost Centre].[Cost Centre].ALLMEMBERS * [DIM Location Codes].[Location Code].[Location Code].ALLMEMBERS * [DIM Grades].[Grade Code].[Grade Code].ALLMEMBERS * [DIM Company Codes].[Company Code].[Company Code].ALLMEMBERS * [Dim Codes].[Description].[Description].ALLMEMBERS * [Dim Codes].[Code].[Code].ALLMEMBERS * [Dim Codes].[Long Description].[Long Description].ALLMEMBERS ),"+Parameters!P_TopN.Value+",[Measures].[ValueCode] ) ON ROWS  
 FROM ( SELECT ( -{ [DIM Cost Centres].[Cost Centre].&[9006890557], [DIM Cost Centres].[Cost Centre].&[NA18350157], [DIM Cost Centres].[Cost Centre].&[NA18312257], [DIM Cost Centres].[Cost Centre].&[WB18350357], [DIM Cost Centres].[Cost Centre].&[EC18350157], [DIM Cost Centres].[Cost Centre].&[HSS8800257] } ) ON COLUMNS  
 FROM ( SELECT ( STRTOSET(@DIMCompanyCodesCompanyCode, CONSTRAINED) ) ON COLUMNS  
 FROM ( SELECT ( STRTOSET(@DimDatesYear, CONSTRAINED) ) ON COLUMNS   
 FROM ( SELECT ( { [Dim Codes].[Code].&["+Parameters!P_Reports.Value+"] } ) ON COLUMNS  
 FROM [DW Datatrieve]))))   
 WHERE ( IIF( STRTOSET(@DimDatesYear, CONSTRAINED).Count = 1, STRTOSET(@DimDatesYear, CONSTRAINED), [Dim Dates].[Year].currentmember ) ) " 

1 Ответ

0 голосов
/ 24 февраля 2011

Ответ будет зависеть от того, хотите ли вы всегда показывать текущий код CoCode на данный момент или хотите ли вы выполнить запрос для определенного периода и отображать код CoCode «как на» этот период.

Есливам всегда нужен текущий CoCode независимо от периода, а затем сделайте CoCode атрибутом EE, как вы предлагаете.

Если вы хотите, чтобы "как на", то вам нужно сделать CoCode медленно меняющимся атрибутом на EE.

Посмотрите медленно изменяющиеся размеры (SCD) и посмотрите, что вы можетенайти.

...