2016-02-03 57 views
1

我正在使用sharepoint報告生成器。用MDX主機選擇第一行?

在我的數據(下面的圖片) - 我想獲得所有的第一行 - 黃色的。

enter image description here

我怎麼做。

這是MDX代碼。我應該寫什麼來獲取黃色的行?

SELECT 
    NON EMPTY 
    {[Measures].[Antal unikke brugere - Visiteret Tid]} ON COLUMNS 
,NON EMPTY 
    { 
     [Borger].[Anonym Borgernøgle DPR].[Anonym Borgernøgle DPR].ALLMEMBERS* 
     [SundhedOgOmsorg - Ydelse].[Ydelse].[Ydelse].ALLMEMBERS* 
     [Kalender].[År].[År].ALLMEMBERS* 
     [Kalender].[Måned].[Måned].ALLMEMBERS 
    } 
    DIMENSION PROPERTIES 
    MEMBER_CAPTION 
    ,MEMBER_UNIQUE_NAME 
    ON ROWS 
FROM 
(
    SELECT 
    { 
     [SundhedOgOmsorg - Ydelse].[Ydelse].&[12.1 Hjemmetrænerforløb] 
    ,[SundhedOgOmsorg - Ydelse].[Ydelse].&[12.2 Komb. Hjemmetræner & Terapeutforløb] 
    ,[SundhedOgOmsorg - Ydelse].[Ydelse].&[12.3 Komplekse Rehabiliteringsforløb] 
    ,[SundhedOgOmsorg - Ydelse].[Ydelse].&[12.7. hverdagsrehab. revis.gr. m. tp.] 
    } ON COLUMNS 
    FROM 
    (
    SELECT 
     {[SundhedOgOmsorg - Modul].[Modul].&[Hjemmehjælp]} ON COLUMNS 
    FROM [FrbLis] 
) 
) 
WHERE 
    [SundhedOgOmsorg - Modul].[Modul].&[Hjemmehjælp] 
CELL PROPERTIES 
    VALUE 
,BACK_COLOR 
,FORE_COLOR 
,FORMATTED_VALUE 
,FORMAT_STRING 
,FONT_NAME 
,FONT_SIZE 
,FONT_FLAGS; 
+0

我很喜歡你的問題 - 你喜歡我的回答嗎? – whytheq

回答

0

你可以嘗試使用以下迭代mdx功能之一:

Generate - https://msdn.microsoft.com/en-us/library/ms145526.aspx

Filter - https://msdn.microsoft.com/en-us/library/ms146037.aspx

要使用過濾器是一點點,因爲你需要指定更令人費解基於它們相對位置的特定元組。生成更直接一點。我將嘗試針對MS AdvWrks立方體提供一個示例。

我覺得這是比較類似您的情況:

SELECT 
    {[Measures].[Internet Sales Amount]} ON 0 
,NON EMPTY 
     [Product].[Product Categories].[Product] 
    * 
     { 
      [Date].[Calendar].[Date].&[20050801] 
     : 
      [Date].[Calendar].[Date].&[20050807] 
     } ON 1 
FROM [Adventure Works]; 

你想我已經標記爲紅色行(有很多的產品,只有1行)

enter image description here

因此,如果我們現在將以下多維表達式應用於立方體:

WITH 
    SET [prodSet] AS 
    [Product].[Product Categories].[Product] 
    SET [prodDtSet] AS 
    Generate 
    (
     [prodSet] AS P 
    ,Head 
     (
      P.Current 
     * 
      NonEmpty 
      (
      { 
       [Date].[Calendar].[Date].&[20050801] 
       : 
       [Date].[Calendar].[Date].&[20050807] 
      } 
      ,(
       P.Current 
      ,[Measures].[Internet Sales Amount] 
      ) 
     ) 
    ) 
    ) 
SELECT 
    {[Measures].[Internet Sales Amount]} ON 0 
,[prodDtSet] ON 1 
FROM [Adventure Works]; 

我們得到所需要的結果:

enter image description here

你能到我的例子適應你的背景?


我將有一個進一步發揮和供應(在某種程度上這將是,稍微複雜一些比生成方法)使用Filter解決

下面是使用Filter的方法:

WITH 
    SET [prodSet] AS 
    [Product].[Product Categories].[Product] 
    SET [prodDtSet] AS 
    NonEmpty 
    (
     [prodSet] 
     * 
     { 
      [Date].[Calendar].[Date].&[20050801] 
      : 
      [Date].[Calendar].[Date].&[20050807] 
     } 
    ,[Measures].[Internet Sales Amount] 
    ) 
    SET [prodDtSetFiltered] AS 
    Filter 
    (
     [prodDtSet] 
    , 
     (NOT 
      [prodDtSet].Item(
      [prodDtSet].CurrentOrdinal - 1).Item(0) 
      IS 
      [prodDtSet].Item(
      [prodDtSet].CurrentOrdinal - 2).Item(0)) 
     OR 
     [prodDtSet].CurrentOrdinal = 1 
    ) 
SELECT 
    {[Measures].[Internet Sales Amount]} ON 0 
,[prodDtSetFiltered] ON 1 
FROM [Adventure Works]; 

結果如下:

enter image description here

+0

是的:)它的工作 - 最後一個與過濾器。非常感謝你。 –

+0

@RuneFrederiksberg - 快樂 - 這個很有趣。 – whytheq