我想知道所有客户的Max订单日期是什么 1 - 如何将两个行项放入查询中 2 - 如何获得最大日期 3 - 我也不想在查询中使用Amount,但看起来好像MDX需要一个Column来运行查询。
以下是对此查询的尝试。
Select [Measures].[Amount] On Columns,
[Dim Customer].[Cust #],Max([Dim Inv Date].[Actual Date]).MEMBERS ON ROWS
from [OperationsFinance]
答案 0 :(得分:0)
可以有空列:
Select
{} On Columns,
[Dim Customer].[Cust #].MEMBERS ON ROWS
FROM [OperationsFinance]
要使用crossjoin
放置两行 - 使用crossjoin函数或星号运算符。尝试以下示例 - 您可能需要取消注释NON EMPTY
函数以消除从交叉连接创建的空值:
Select
[Measures].[Amount]
On Columns,
//NON EMPTY
[Dim Customer].[Cust #]
*
[Dim Inv Date].[Actual Date].MEMBERS
ON ROWS
from [OperationsFinance]
要执行Max
日期,我可以看到针对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]