我正在尝试将以下sql语句复制到MDX中,以便我可以使用基本加载的成员在多维数据集中创建计算成员,而不必在表中的多维数据集外计算它然后加载它
SUM(CASE WHEN ((A.SALES_TYPE_CD = 1) AND (A.REG_SALES=0))
THEN A.WIN_SALES
ELSE 0
END) AS Z_SALES
我目前正在加载SALES_TYPE_CD
作为维度,REG_SALES
和WIN_SALES
作为度量。
我在立方体中还有一些其他尺寸,但为简单起见,我只想说我还有其他两个尺寸,LOCATION
和ITEM
维度LOCATION
有3个级别"Region"->"District"->"Store"
,从上到下排序
维度ITEM
有3个级别"CLASS"->"SUBCLASS"->"SKU"
,从上到下排序。
维度SALES TYPE
有2个级别"SALES_TYPE_GROUP"->"SALES_TYPE_CD"
,从上到下排序。
我知道我无法在多维数据集中创建一个简单的计算成员,它将“SALES_TYPE”维度与另一个维度交叉连接以获得我想要的答案。
我认为这将是一个更复杂的MDX语句,如:
CREATE MEMBER CURRENTCUBE.[Measures].[Z_Sales]
AS 'sum(filter(crossjoin(leaves(), [Sales Type].[Sales Type].
[Sales_Type_CD].&[1]), [Measures].[REG_SALES]=0),[Measures].
[WIN_SALES])',
FORMAT_STRING = '#,#',
VISIBLE = 1 ;
但这似乎没有返回所需的结果。 什么是生成所需结果的正确MDX代码?
答案 0 :(得分:0)
我对数据进行了大量测试,现在我知道在这种情况下我无法单独使用MDX来获得正确的答案。就像“Greg”和“Tab”所建议的那样,唯一的办法就是将reg销售作为一个维度。由于这是一个度量,因为具有十进制数据类型的值的大量可能性,这是不可能的(18,2) 感谢您抽出宝贵时间回答这个问题。