使用MDX hos选择第一行?
我正在使用sharepoint报表生成器 在我的数据中(下图)-我想得到所有第一行-黄色的 我该怎么做呢 这是MDX代码。我应该写什么才能得到黄色的行使用MDX hos选择第一行?,mdx,Mdx,我正在使用sharepoint报表生成器 在我的数据中(下图)-我想得到所有第一行-黄色的 我该怎么做呢 这是MDX代码。我应该写什么才能得到黄色的行 SELECT NON EMPTY {[Measures].[Antal unikke brugere - Visiteret Tid]} ON COLUMNS ,NON EMPTY { [Borger].[Anonym Borgernøgle DPR].[Anonym Borgernøgle DPR]
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;
您可以尝试使用以下迭代
mdx
函数之一:
-
-
使用过滤器要复杂一些,因为您需要根据元组的相对位置指定特定的元组。生成更简单一些。我将尝试提供一个针对MSAdvWrks
cube的示例
我认为这与您的情况相对类似:
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];
您会喜欢我用红色标记的行(很多产品只有一行)
因此,如果我们现在将以下多维表达式应用于多维数据集:
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];
我们得到了所需的结果:
你能把我的例子适应你的环境吗
我将进一步发挥作用,并提供一个使用
过滤器的解决方案(在某种程度上,它将比Generate方法稍微复杂一点)
下面是一种使用过滤器的方法:
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];
结果如下:
您可以尝试使用以下迭代的mdx
函数之一:
-
-
使用过滤器要复杂一些,因为您需要根据元组的相对位置指定特定的元组。生成更简单一些。我将尝试提供一个针对MSAdvWrks
cube的示例
我认为这与您的情况相对类似:
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];
您会喜欢我用红色标记的行(很多产品只有一行)
因此,如果我们现在将以下多维表达式应用于多维数据集:
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];
我们得到了所需的结果:
你能把我的例子适应你的环境吗
我将进一步发挥作用,并提供一个使用过滤器的解决方案(在某种程度上,它将比Generate方法稍微复杂一点)
下面是一种使用过滤器的方法:
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];
结果如下:
我喜欢你的问题-你喜欢我的答案吗?我喜欢你的问题-你喜欢我的答案吗?是:)它起作用了-最后一个带过滤器的问题。非常感谢。@RuneFrederiksberg-很高兴-这一个很有趣。是的:)它成功了-最后一个带过滤器的。非常感谢。@RuneFrederiksberg-很高兴-这一次很有趣。