SQL Server MDX查询:使用CROSSJOIN和FILTER,所有带有= 0分钟的会员帐户和会员电子邮件

时间:2019-06-22 00:36:49

标签: sql-server ssas mdx

我是SQL Server的新手,我试图获取一个查询以显示具有[Mins]字段值为(空)的所有[Email](即用户的电子邮件地址)的成员,并且我还想要一个用户的[帐户名称](即他们所在的公司)的列。

让查询以[Account Name](末尾带有“ .Members”)运行是我的失败之处。所有这三个字段都在不同的表上,并且我使用了CROSSJOIN和FILTER的组合。

我不确定查询是否会运行,因为:

  1. 我不正确使用.Members,因为我同时用于[电子邮件]和[帐户名称],或
  2. 我们遇到了某种内存问题(这不是第一次!)。

我是SQL新手,在StackOverFlow上发现了不同的解决方案,以部分解决问题,从而成功地整理了以下代码,但是我无法通过在“ [帐户名]”之后添加“ .Members”来解决问题查询运行,但几分钟后它耗尽了内存。

如果我没有在“ [帐户名称]”之后包含“ .Members”,则查询将在大约17秒后成功运行;但是,它只显示“名称”作为“帐户名称”,而不显示该帐户。我只想在电子邮件旁边显示该帐户!

'''
SELECT
    [Measures].[Sum of Mins]
        ON COLUMNS,
    CROSSJOIN(
        [vw_AccountData].[Account Name].Members,
            Filter (
                    [vw_UserData].[Email].Members,
                    [Measures].[Sum of Mins] = 0
                     ))
         ON ROWS
FROM [Model]  
'''

Expected/Actual Results

1 个答案:

答案 0 :(得分:0)

我的理解是,对于此度量[Measures]。[空值总和]的用户,它们具有空值或零值。我假设您有一个度量[Measures]。[Mins of Mins]和维度属性[vw_AccountData]。[Account Name]和[vw_UserData]。[Email]在您的多维数据集中

Select 
[Measures].[Sum of Mins]
ON COLUMNS,
filter 
(
([vw_AccountData].[Account Name].[Account Name],[vw_UserData].[Email].[Email]),
[Measures].[Sum of Mins] = 0
)
on rows
from 
[Model]