在列上选择月份为kpi

时间:2015-05-06 08:57:33

标签: mdx olap-cube

我想在特定的一年(2013年)每月获得两个工厂的oee,可能它非常微不足道但我不知道该怎么做:

with member [Measures].[OEE] as 'OEE'
select
{
    [Equipment].[Plant Hierarchy].[Group].[DEMO_PLANT],
    [Equipment].[Plant Hierarchy].[Group].[DEMO_PLANT2]
} on columns,
{
    [Time].[Month]
} on rows
from ExpertPlan
where [Time].[Year].&[2013-01-01T00:00:00]

选择是好的(植物在列和行上的月份),但我不确定"用"获取值的用法是[Measures]。[OEE]

2 个答案:

答案 0 :(得分:1)

With适用于自定义计算成员和自定义集。

将您的度量添加到slicerWHERE子句)

SELECT 
  {
    [Equipment].[Plant Hierarchy].[Group].[DEMO_PLANT]
   ,[Equipment].[Plant Hierarchy].[Group].[DEMO_PLANT2]
  } ON COLUMNS
 ,{[Time].[Month]} ON ROWS
FROM ExpertPlan
WHERE 
  (
    [Time].[Year].&[2013-01-01T00:00:00]
   ,[Measures].[OEE]
  );

以下是一些在AdvWrks多维数据集中处理此问题的原型方法:

SELECT 
  [Customer].[Country].&[United States] ON COLUMNS
 ,[Date].[Calendar].[Month] ON ROWS
FROM [Adventure Works]
WHERE 
  (
    [Date].[Calendar Year].&[2007]
   ,[Measures].[Internet Sales Amount]
  );


SELECT 
  [Customer].[Country].&[United States] ON COLUMNS
 ,Descendants
  (
    [Date].[Calendar].[Calendar Year].&[2007]
   ,[Date].[Calendar].[Month]
  ) ON ROWS
FROM [Adventure Works]
WHERE 
  [Measures].[Internet Sales Amount];

上述两个结果都是在这个结果单元格中产生的:

enter image description here

答案 1 :(得分:0)

添加到其他答案,您还可以使用subselect

SELECT 
  {
    [Equipment].[Plant Hierarchy].[Group].[DEMO_PLANT]
   ,[Equipment].[Plant Hierarchy].[Group].[DEMO_PLANT2]
  } ON COLUMNS
 ,{[Time].[Month]} ON ROWS
FROM 
    (
    SELECT [Time].[Year].&[2013-01-01T00:00:00] ON 0 
    FROM [ExpertPlan]
    )
WHERE 
   {[Measures].[OEE]}

在MDX中,WHERE是第3轴,虽然不太明显。认为它就像excel,你有行,列和值。您可以将层次结构(属性)放在任何轴上([Measures]的行为与任何常规层次结构一样)。它只会改变最终输出的样子。