MDX 查询不同维度的不同组合
MDX query different combinations of different dimensions
我有一个定义了维度的立方体:
- 日期(年、月、周、日)
- 产品
和措施:
- 销售额
- 单位
每周都会推广 select 组产品(即 "on sale")。我正在尝试编写的查询是,在给定的时间点,过去 n 周内所有促销商品的总销售额和售出单位是多少。
我可以轻松地编写一个查询来获取这些值一周 - 它看起来像这样:
SELECT
NON EMPTY { [Measures].[Sales Amount], [Measures].[Units] } ON COLUMNS
FROM
[Cube]
WHERE
(
{ [Product].[Product].[Product].&[ProductA], [Product].[Product].[Product].&[ProductB] },
[Date].[Week].[Week].[Week 8]
)
MDX无法表达的是,"for week 8, give me the sales for these products, and for week 9 give me the sales for these other products",等等
正在推广的产品的概念未在多维数据集中以任何方式建模。我考虑过这样做,但我不确定如何实现它(也许是 SCD?)。
如有任何帮助,我们将不胜感激。谢谢
您可以创建一组元组 - 只要该组中的每个元组具有相同的维度:
SELECT
NON EMPTY
{
[Measures].[Sales Amount]
,[Measures].[Units]
} ON 0
,NON EMPTY
{
(
[Product].[Product].[Product].&[ProductA]
,[Date].[Week].[Week].[Week 8]
)
,(
[Product].[Product].[Product].&[ProductB]
,[Date].[Week].[Week].[Week 9]
)
} ON 1
FROM [Cube];
或者,如果您想查看每个层次结构的所有可能现有组合,则只需交叉连接每个层次结构中的所有成员:
SELECT
NON EMPTY
{
[Measures].[Sales Amount]
,[Measures].[Units]
} ON 0
,NON EMPTY
[Product].[Product].MEMBERS * [Date].[Week].MEMBERS ON 1
FROM [Cube];
我有一个定义了维度的立方体:
- 日期(年、月、周、日)
- 产品
和措施:
- 销售额
- 单位
每周都会推广 select 组产品(即 "on sale")。我正在尝试编写的查询是,在给定的时间点,过去 n 周内所有促销商品的总销售额和售出单位是多少。
我可以轻松地编写一个查询来获取这些值一周 - 它看起来像这样:
SELECT
NON EMPTY { [Measures].[Sales Amount], [Measures].[Units] } ON COLUMNS
FROM
[Cube]
WHERE
(
{ [Product].[Product].[Product].&[ProductA], [Product].[Product].[Product].&[ProductB] },
[Date].[Week].[Week].[Week 8]
)
MDX无法表达的是,"for week 8, give me the sales for these products, and for week 9 give me the sales for these other products",等等
正在推广的产品的概念未在多维数据集中以任何方式建模。我考虑过这样做,但我不确定如何实现它(也许是 SCD?)。
如有任何帮助,我们将不胜感激。谢谢
您可以创建一组元组 - 只要该组中的每个元组具有相同的维度:
SELECT
NON EMPTY
{
[Measures].[Sales Amount]
,[Measures].[Units]
} ON 0
,NON EMPTY
{
(
[Product].[Product].[Product].&[ProductA]
,[Date].[Week].[Week].[Week 8]
)
,(
[Product].[Product].[Product].&[ProductB]
,[Date].[Week].[Week].[Week 9]
)
} ON 1
FROM [Cube];
或者,如果您想查看每个层次结构的所有可能现有组合,则只需交叉连接每个层次结构中的所有成员:
SELECT
NON EMPTY
{
[Measures].[Sales Amount]
,[Measures].[Units]
} ON 0
,NON EMPTY
[Product].[Product].MEMBERS * [Date].[Week].MEMBERS ON 1
FROM [Cube];