MDX query Count()在WHERE子句中放入[Account].[Account Number].&[1]时返回null

MDX query Count()在WHERE子句中放入[Account].[Account Number].&[1]时返回null,mdx,Mdx,在我们的AdventureWorks多维数据集中,如果我们运行以下查询,我们将返回两个空单元格,并且这只会发生在帐号中的一些成员身上。有人知道为什么吗 将返回两个空值单元格的查询: WITH MEMBER count1 AS 'Count(Crossjoin([Measures].[Amount], [Date].[Calendar Year].[Calendar Year]))' MEMBER count2 AS 'Count(DrilldownLevel([Department].[Depa

在我们的AdventureWorks多维数据集中,如果我们运行以下查询,我们将返回两个空单元格,并且这只会发生在帐号中的一些成员身上。有人知道为什么吗

将返回两个空值单元格的查询:

WITH MEMBER count1 AS 'Count(Crossjoin([Measures].[Amount], [Date].[Calendar Year].[Calendar Year]))'
MEMBER count2 AS 'Count(DrilldownLevel([Department].[Departments]))'

SELECT  {count1, count2} ON 0 FROM [Adventure Works]
WHERE [Account].[Account Number].&[1]
将返回两个编号正确的单元格的查询:

WITH MEMBER count1 AS 'Count(Crossjoin([Measures].[Amount], [Date].[Calendar Year].[Calendar Year]))'
MEMBER count2 AS 'Count(DrilldownLevel([Department].[Departments]))'

SELECT  {count1, count2} ON 0 FROM [Adventure Works]
WHERE [Account].[Account Number].&[4]
有人知道为什么在WHERE子句中添加[Account].[Account Number].&[1]会导致计数返回空值单元格吗

此外,如果我们将查询更改为以下内容,它似乎会给出正确的结果。有人知道使用交叉连接是否是解决问题的正确方法吗

WITH MEMBER count1 AS 'Count(Crossjoin(Crossjoin([Measures].[Amount], [Date].[Calendar Year].[Calendar Year]), [Account].[Account Number].&[1]))'
MEMBER count2 AS 'Count(Crossjoin(DrilldownLevel([Department].[Departments]), [Account].[Account Number].&[1]))'

SELECT {count1, count2} ON 0 FROM [Adventure Works]
谢谢

维维安试试:

WITH
MEMBER [Measures].[count1] AS
    Count(NonEmpty([Date].[Calendar Year].[Calendar Year],[Measures].[Amount]))
MEMBER [Measures].[count2] AS
    Count(NonEmpty([Department].[Departments].[Departments].Members,[Measures].[Amount]))
SELECT
{
    [Measures].[count1],
    [Measures].[count2]
} ON 0
FROM [Adventure Works]
WHERE [Account].[Account Number].&[1]