2017-07-28 1 views
0

Ich möchte eine dynamische Abfrage erstellen, die jeden Tag aktualisiert.DATWERT Berechnung in MDX-Abfrage

So auf den heutigen Bericht filtern I

[Report Date].[Report Date].&[4226] 

Die 4226 kommt aus verwenden:

=DATEVALUE("28-07-2017")-38718 or =TODAY()-38718 (convert to number) 

38718 nur eine willkürliche Zahl ist das richtige Datum aus dem Cube zu erhalten.

EDIT:

Hier ist meine aktuelle Abfrage:

SELECT NON EMPTY { [Measures].[Price FC] } ON COLUMNS 
FROM (SELECT (-{ [Agency].[Nationality - Consortium - Agency].[Nationality].&[111], 
        [Agency].[Nationality - Consortium - Agency].[Nationality].&[116], 
        [Agency].[Nationality - Consortium - Agency].[Nationality].&[242], 
        [Agency].[Nationality - Consortium - Agency].[Nationality].&[134] }) ON COLUMNS 
FROM (SELECT ({ StrToMember("[Report Date].[Report Date].&[" + Str(DateValue(Format(Now(), "dd-MM-yyyy")) - 38718) + "]") }) ON COLUMNS 
FROM (SELECT ({ [Market].[Market].[Market].&[103] }) ON COLUMNS 
FROM (SELECT ({ [Travel Type].[Travel Type].&[101], 
        [Travel Type].[Travel Type].&[102], 
        [Travel Type].[Travel Type].&[103] }) ON COLUMNS 
FROM (SELECT ({ [Departure Date].[Year].&[2017] }) ON COLUMNS 
FROM [Booking]))))) 
WHERE ([Departure Date].[Year].&[2017], 
     [Travel Type].[Travel Type].CurrentMember, 
     [Market].[Market].[Market].&[103], 
     StrToMember("[Report Date].[Report Date].&[" + Str(DateValue(Format(Now(), "dd-MM-yyyy")) - 38718) + "]")) 

Aber es sagt, dass es keine Spalte in der Erklärung festgestellt ist. Ich habe auch verschiedene Datumsformate ausprobiert, irgendwelche Ideen?

+0

Konnten Sie genaue Fehlermeldung schreiben? Können Sie dieses MDX in SSMS ausführen? –

Antwort

1

Spitzen aus diesem Thread Folgende:

VBA Date as integer

I verwendet CDbl statt DATWERT, das gab mir das gewünschte Ergebnis!

StrToMember("[Report Date].[Report Date].&[" + Str(Int(CDbl(Now()) - 38718)) + "]")