2016-10-05 4 views
0

Ich möchte den Umsatz für die Promotion mit dem Datum berechnen. Ich benötige 3 Maßnahmen, durchschnittlicher Umsatz ab 21 Tagen vor dem Startdatum der Aktion, den Umsatz zwischen dem Start- und Enddatum der Aktion und den Umsatz ab 21 Tagen nach dem Enddatum der Aktion. Warum Visual Studio hebt AVG im Code unten hervor?AVG (VORHANDEN()) Syntaxfehler

CREATE MEMBER CURRENTCUBE.[Measures].[Sales in promotion] 
AS Avg(Existing([Promotion].[Promotion name].[Promotion name]),[Measures].[Sales]), ... 

Same hier:

CREATE MEMBER CURRENTCUBE.[Measures].[Sales before promotion] 
AS (EXISTING([Promotion].[Promotion name].[Promotion name]), AVG(strtomember("[Date].[Date].&["+ [Promotion].[Date].currentmember.member_key+"]").lag(21) : strtomember("[Date].[Date].&["+ [Promotion].[Date From].currentmember.member_key+"]"), 
[Measures].[Sales])) ... 

Wenn ich Summe tun (bestehende()) in der ersten Maßnahme, die Summe richtig berechnet, aber es erlaubt mir nicht, Durchschnitt zu erhalten.

+0

Sie wollen nur den Durchschnitt pro Promotion? Also, zum Beispiel, wenn es 2 Promotionen im Zeitraum gab, sollte die Antwort sein (TotalSales/2) – whytheq

Antwort

1

EXISTING wird nur helfen, wenn [Promotion] Teil Ihrer Abfrage entweder in der WHERE oder SELECT Klausel ist. Wenn es in keiner dieser Klauseln enthalten ist, wird EXISTING 1 Mitglied finden - das All Mitglied.

Sie könnten NonEmpty ausprobieren und vielleicht die Periodenlogik in ein benutzerdefiniertes Set verschieben?

Von dem Code, den Sie gepostet haben, kann ich nicht sagen, ob Sie einen täglichen Durchschnitt oder Durchschnitt pro Aktion möchten? Sag mal, es gab 2 Promotionen über die 21 Tage. Soll das heißen, dass du willst (Total/2/21)?

+0

Danke, ich werde das versuchen. Ich möchte Durchschnitt für jede einzelne Promotion über 21 Tage. – Dodzik

+0

@Dodzik Also, wenn 2 Promotions in den letzten 21 Tagen passiert sind, dann wäre die Berechnung (Total/42)? – whytheq

+0

Dies wird in der excels Pivot-Tabelle angezeigt, so dass es manchmal für einzelne Werbung berechnet wird (also Promotion \ 21) und manchmal, wenn der Benutzer Zeilen zusammenfaltet, wird es "Promotions \ 21", nicht 41. Wie auch immer, danke für Hilfe Ich werde dich wissen lassen, ob es so funktioniert, wie ich es mir vorstelle. – Dodzik