我想为每个产品类别创建一个顶级用户数。 我的产品尺寸类似于以下[产品]。[ProductCategory]。[ProductType]我的应用程序的用户可以过滤产品并返回如下设置:[Product]。[ProductCategory1]。[ProductType1],[Product]。 [ProductCategory3]。[ProductType5],...
现在我获得了每个产品类别的topcount,但它没有过滤该类别的孩子:类型。我的查询示例:
SELECT
NON EMPTY {[Measures].[Orders]} ON COLUMNS,
NON EMPTY
{Order(
Generate(
Exists(
[Product].[ProductCategory].Members
,{
[Product].[ProductCategory1].[ProductType1]
,[Product].[ProductCategory3].[ProductType5]
}
)
, TopCount(
Crossjoin(
{[Product].[ProductCategory].currentmember}
,{[USER].[UserName].Members}
)
,5.0
,[Measures].[Orders]
)
)
, [Measures].[Orders]
, DESC
)
} ON ROWS
FROM [Products]
[Product]。[ProductCategory] .currentmember不会返回带有过滤产品类型的类别。
有没有人有解决方案?
答案 0 :(得分:0)
(不是答案,而是希望帮助找到答案的脚本)
我猜你的问题与剧本的存在部分有关。这会返回您期望的结果吗?
SELECT
{[Measures].[Orders]} ON COLUMNS,
Exists(
[Product].[ProductCategory].Members
,{
[Product].[ProductCategory1].[ProductType1]
,[Product].[ProductCategory3].[ProductType5]
}
)
ON ROWS
FROM [Products]
答案 1 :(得分:0)
我使用计算的度量来修复问题,以便使用产品成员过滤度量。
WITH MEMBER [Measures].[FilteredOrders] AS
'SUM(exists([Product].[ProductCategory].currentmember.children, {[Product].[ProductCategory1].[ProductType1]
,[Product].[ProductCategory3].[ProductType5]}), [Measures].[Orders])'