如何编写MDX查询按商品展示各尺码的数量?
MDX查询修改:统计指定商品各尺码数量
原MDX查询用于展示指定商品(ItemID为6863153)的尺码种类:
select {} on 0, {[Товары].[ItemID].[6863153] * [Товары].[SizeID].[SizeID]} on 1 from [Analyse]
要修改为统计该商品下各尺码的数量,分三种场景处理:
方案1:用Cube中现成的计数度量(最优)
如果你的[Analyse]Cube里有库存数、销售数这类现成的计数度量(比如[Меры].[Количество]),直接将其放到列轴(0轴)即可:
select {[Меры].[Количество]} on 0, {[Товары].[ItemID].[6863153] * [Товары].[SizeID].[SizeID]} on 1 from [Analyse]
替换[Меры].[Количество]为你Cube中实际的计数度量名称
方案2:无现成度量时,用Count函数统计
如果没有现成的计数度量,可通过Count函数统计对应尺码下的事实表记录数:
select { Count( Existing [Факты].[Факт ID].[Факт ID].Members, EXCLUDEEMPTY ) } on 0, {[Товары].[ItemID].[6863153] * [Товары].[SizeID].[SizeID]} on 1 from [Analyse]
Existing:限定只统计当前行(指定商品+尺码)范围内的事实记录EXCLUDEEMPTY:自动排除没有记录的尺码(若需保留所有尺码,移除该参数)- 替换
[Факты].[Факт ID].[Факт ID].Members为你实际的事实表主键成员集
方案3:创建计算成员复用统计逻辑
如果需要多次使用该统计逻辑,可提前定义计算成员:
WITH MEMBER [Меры].[Количество по размеру] AS Count( Existing [Факты].[Факт ID].[Факт ID].Members, EXCLUDEEMPTY ) SELECT {[Меры].[Количество по размеру]} on 0, {[Товары].[ItemID].[6863153] * [Товары].[SizeID].[SizeID]} on 1 FROM [Analyse]
内容的提问来源于stack exchange,提问作者Александр Дексбах
相关产品推荐
相关产品推荐

