Ssas MDX:我只需要那些突出显示的记录

Ssas MDX:我只需要那些突出显示的记录,ssas,mdx,Ssas,Mdx,我只需要那些突出显示的记录 SELECT [Measures].[Assessment Patients Detail] ON COLUMNS, NON EMPTY([DimAssessment].[Assessment Text].&[Employee Wellness HRA], [DimAssessment].[Question Text].&[Do you use tobacco products?], [DimPatient].

我只需要那些突出显示的记录

SELECT 
[Measures].[Assessment Patients Detail] ON COLUMNS,
NON EMPTY([DimAssessment].[Assessment Text].&[Employee Wellness HRA],
          [DimAssessment].[Question Text].&[Do you use tobacco products?],
          [DimPatient].[Patient Key].[Patient Key],
          Generate(
              [DimAssessment].[Answer Text].[Answer Text].MEMBERS
             ,[DimAssessment].[Answer Text].CURRENTMEMBER
             *TAIL(
                NonEmpty(
                   [DimDate].[Full Date Alternate Key].[Full Date Alternate Key].MEMBERS
                  ,[DimAssessment].[Answer Text].CURRENTMEMBER
                )
              ,[DimAssessment].[Question Text].&[Do you use tobacco products?]
              )
          )
)ON ROWS
FROM
[Care];

这可能不是答案,因为我以前曾尝试过帮助解决这个问题,但下面有点神秘:

函数
Tail
的第二个参数通常是一个整数,例如2或3,这意味着您想要
Tail
的第一个参数中指定的集合中的最后2或最后3个成员

对于行中的成员,我更喜欢使用交叉连接而不是元组,但我认为这不会提供所需的行:

SELECT 
[Measures].[Assessment Patients Detail] ON COLUMNS,
NON EMPTY
     {[DimAssessment].[Assessment Text].&[Employee Wellness HRA]}
    *{[DimAssessment].[Question Text].&[Do you use tobacco products?]}
    *[DimPatient].[Patient Key].[Patient Key].members
    *Generate(
         [DimAssessment].[Answer Text].[Answer Text].MEMBERS
        ,[DimAssessment].[Answer Text].CURRENTMEMBER
        *TAIL(
           NonEmpty(
              [DimDate].[Full Date Alternate Key].[Full Date Alternate Key].MEMBERS
             ,[DimAssessment].[Answer Text].CURRENTMEMBER
           )
         ,1 //[DimAssessment].[Question Text].&[Do you use tobacco products?]
      )
     )
ON ROWS
FROM
[Care];
我们需要在generate中移动更多的逻辑

首先尝试以下操作,看看它是否返回两个正确的列

SELECT 
[Measures].[Assessment Patients Detail] ON COLUMNS,
NON EMPTY
    Generate(
         [DimPatient].[Patient Key].[Patient Key].MEMBERS
        ,[DimPatient].[Patient Key].CURRENTMEMBER
        *TAIL(
           NonEmpty(
              [DimDate].[Full Date Alternate Key].[Full Date Alternate Key].MEMBERS
             ,[DimPatient].[Patient Key].CURRENTMEMBER
           )
         ,1 
      )
ON ROWS
FROM
[Care];

这可能不是我以前尝试过的答案,但下面有点神秘:

函数
Tail
的第二个参数通常是一个整数,例如2或3,这意味着您想要
Tail
的第一个参数中指定的集合中的最后2或最后3个成员

对于行中的成员,我更喜欢使用交叉连接而不是元组,但我认为这不会提供所需的行:

SELECT 
[Measures].[Assessment Patients Detail] ON COLUMNS,
NON EMPTY
     {[DimAssessment].[Assessment Text].&[Employee Wellness HRA]}
    *{[DimAssessment].[Question Text].&[Do you use tobacco products?]}
    *[DimPatient].[Patient Key].[Patient Key].members
    *Generate(
         [DimAssessment].[Answer Text].[Answer Text].MEMBERS
        ,[DimAssessment].[Answer Text].CURRENTMEMBER
        *TAIL(
           NonEmpty(
              [DimDate].[Full Date Alternate Key].[Full Date Alternate Key].MEMBERS
             ,[DimAssessment].[Answer Text].CURRENTMEMBER
           )
         ,1 //[DimAssessment].[Question Text].&[Do you use tobacco products?]
      )
     )
ON ROWS
FROM
[Care];
我们需要在generate中移动更多的逻辑

首先尝试以下操作,看看它是否返回两个正确的列

SELECT 
[Measures].[Assessment Patients Detail] ON COLUMNS,
NON EMPTY
    Generate(
         [DimPatient].[Patient Key].[Patient Key].MEMBERS
        ,[DimPatient].[Patient Key].CURRENTMEMBER
        *TAIL(
           NonEmpty(
              [DimDate].[Full Date Alternate Key].[Full Date Alternate Key].MEMBERS
             ,[DimPatient].[Patient Key].CURRENTMEMBER
           )
         ,1 
      )
ON ROWS
FROM
[Care];

我很惊讶这段代码会执行?@whytheq-为什么你对这是你的查询感到惊讶(你上周发表了评论),但例外的结果集没有显示。你把它作为尾随的第二个参数:
,[DimAssessment]。[Question Text]。&[you use tobacco products?]
。第二个参数应该是一个整数。。。所以我很惊讶。我很惊讶这段代码会执行?@whytheq-为什么你对这是你的查询感到惊讶(你上周发表了评论),但是例外结果集没有被显示。你把它作为尾随的第二个参数:
,[DimAssessment].[Question Text]。&[you use tobacco products?]
…第二个参数应该是整数。。。所以我很惊讶。@whytheq-showing error message”查询(4,6)乘法函数需要一个元组集表达式作为1参数。使用了字符串或数值表达式。“@whytheq-您能重播一下吗,我需要每个患者的最新日期和最新答案。@whytheq-显示错误消息”查询(4,6)乘法函数需要一个元组集表达式作为1参数。使用了字符串或数字表达式。“@whytheq-请您重播一下,我需要每个患者的最新日期和最新答案。