具有两行项目的MDX查询

具有两行项目的MDX查询,mdx,Mdx,我想了解我所有客户的最大订单日期。 1-如何将两行项目放入查询中。 2-如何获取最长日期。 3-我也不希望查询中包含金额,但看起来MDX需要一列来运行查询 下面是对此查询的尝试 Select [Measures].[Amount] On Columns, [Dim Customer].[Cust #],Max([Dim Inv Date].[Actual Date]).MEMBERS ON ROWS from [OperationsFinance] 可以有空列: Select {}

我想了解我所有客户的最大订单日期。
1-如何将两行项目放入查询中。
2-如何获取最长日期。
3-我也不希望查询中包含金额,但看起来MDX需要一列来运行查询

下面是对此查询的尝试

Select [Measures].[Amount] On Columns,
[Dim Customer].[Cust #],Max([Dim Inv Date].[Actual Date]).MEMBERS ON ROWS
from [OperationsFinance]

可以有空列:

Select 
    {} On Columns,
    [Dim Customer].[Cust #].MEMBERS ON ROWS
FROM [OperationsFinance]
要放置两行,您需要使用交叉连接功能或星号运算符进行交叉连接。尝试以下示例-您可能需要取消注释
非空
函数,以消除交叉联接创建的空值:

Select 
    [Measures].[Amount] 
On Columns,

//NON EMPTY
    [Dim Customer].[Cust #] 
    *
    [Dim Inv Date].[Actual Date].MEMBERS 
ON ROWS
from [OperationsFinance]
要执行
Max
date,我可以针对Adv-Works多维数据集查看以下示例。这摘自Tomislav Piasevoli的MDX书籍:

WITH 
MEMBER [Measures].[Max_Date2] AS
    MAX (
        EXISTING [Date].[Date].[Date].MEMBERS, 
        IIF([Measures].[Internet Sales Amount] = 0,
            NULL,
            [Date].[Date].CURRENTMEMBER.MEMBERVALUE
            )
    )
SELECT 

    {[Measures].[Internet Sales Amount], 
    [Measures].[Max_Date]} ON 0,

NON EMPTY
    {
    [Promotion].[Promotion].MEMBERS
    *
    [Date].[Calendar Year].MEMBERS
    }
ON 1

FROM [Adventure Works]
适应你:

WITH
MEMBER [Measures].[Max_Date] AS
    MAX (
        EXISTING [Dim Inv Date].[Actual Date].MEMBERS, 
        IIF([Measures].[Amount] = 0,
            NULL,
            [Dim Inv Date].[Actual Date].CURRENTMEMBER.MEMBERVALUE
            )
    )
SELECT 

    {[Measures].[Amount], 
    [Measures].[Max_Date]} ON 0,

NON EMPTY
    {
    [Dim Customer].[Cust #].MEMBERS
    *
    [Dim Inv Date].[Actual Date].MEMBERS
    }
ON 1

FROM [OperationsFinance]

为什么。。。非常感谢你。这非常有用@davidhall80-优秀:更重要的是,它回答了这个问题吗?