2016-03-28 9 views
1

Ich brauche nur diese markierten Datensätze.MDX: Ich brauche nur diese hervorgehobenen Datensätze

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]; 

]

+0

Ich bin überrascht, dass dieser Code ausgeführt wird? – whytheq

+0

@ whytheq- warum Sie überrascht dies ist Ihre Abfrage (Kommentar Sie letzte Woche), aber ausgenommen Ergebnissatz ist nicht – Yugandhar

+0

Sie haben dies als das zweite Argument zu Tail: ', [DimAssessment]. [Fragetext]. & [Do Sie benutzen Tabakprodukte?] '... das zweite Argument sollte eine ganze Zahl sein ... also bin ich überrascht. – whytheq

Antwort

0

Dies ist wahrscheinlich nicht die Antwort, wie ich versucht habe, mit dieser vor zu helfen, aber die folgende ist ein wenig mysteriös:

Das zweite Argument der Funktion Tail in der Regel ist eine ganze Zahl z 2 oder 3, was bedeutet, dass Sie die letzten 2 oder letzten 3 Mitglieder aus dem Satz haben möchten, der im ersten Argument von Tail angegeben ist.

ich lieber verwenden Quer kommen eher als ein Tupel für die Mitglieder auf Zeilen, aber ich glaube nicht, das wird Ihnen die Zeilen, die Sie benötigen:

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]; 

Wir brauchen mehr von der Logik bewegen innerhalb des Generators.

Zuerst versuchen Sie Folgendes, um festzustellen, ob es zwei richtige Spalten zurückgibt?

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]; 
+0

@ whytheq- zeigt die Fehlermeldung 'Query (4, 6) Die Funktion Multiply erwartet einen Tuple-Set-Ausdruck für das Argument 1. Ein String oder ein numerischer Ausdruck wurde verwendet. – Yugandhar

+0

@ whytheq- können Sie bitte wiederholen, ich brauche das neueste Datum und die neueste Antwort für jeden Patienten. – Yugandhar

Verwandte Themen