我面临一些通过比较维度值来计算值的问题。我有 3 个维度(数据类型、客户、产品)和一个度量(GrossSales)。
如果我想要 ProductID = 1,2,3 且 Dataype = 4,5,6 的 GrossSales,MDX 查询是什么?
这里数据类型与 GrossSales 存在关系,Customer 与 GrossSales 存在关系,Product 与 Customer 存在关系。
我正在尝试这个但不起作用
CREATE MEMBER CURRENTCUBE.[Measures].Forecast_Gross_Sales AS
(
SELECT NON Empty [Measures].[Gross Sale]
FROM [Measures]
WHERE (
[Data Type].[ID].[ID] = 4
AND [Chain].[Customer ID] = [Measures].[Customer ID]
)
), VISIBLE = 1
, DISPLAY_FOLDER = 'Forecast'
, ASSOCIATED_MEASURE_GROUP = 'Data Types';
看来您刚刚开始使用 MDX。有一些基本概念可以帮助您获得所需的内容。这SQL 和 MDX 的比较 http://www.mssqltips.com/sqlservertip/2916/comparison-of-queries-written-in-tsql-and-sql-server-mdx/可能会有帮助。 MDX 使用 where 子句作为切片器(以选择某些维度成员)而不是过滤器。你不能把成员=某个值在 where 子句中。而且您不能真正使用 where 子句来定义与其他表的关系。
相反,你的 where 子句会更像
[Data Type].[ID].[ID].&[4]
由于我看不到你的数据模型,我不能确定,但我猜[链].[客户 ID] = [措施].[客户 ID]是您想要定义多维数据集的维度使用情况而不是在查询中的内容。
编辑:现在问题已被编辑,看起来您正在创建一个计算成员。在这种情况下,没有 select 或 where 子句。它看起来更像这样:
CREATE MEMBER CURRENTCUBE.[Measures].Forecast_Gross_Sales AS
Aggregate([Data Type].[ID].[ID].&[4], [Measures].[Gross Sale])
, VISIBLE = 1
, DISPLAY_FOLDER = 'Forecast'
, ASSOCIATED_MEASURE_GROUP = 'Data Types';
从度量值组通过“客户”维度到“链”维度的关系应该在维度使用中定义。这被称为参考尺寸关系。 http://technet.microsoft.com/en-us/library/ms175669.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)