2016-07-12 11 views
1

Ich habe die folgenden Daten-Set bekommt:SSRS-Operationen über die Leitungen des gleichen Datensatz - Subsetting - Lookup

enter image description here

Ich brauche in SSRS zwei Linien zeigen: Ein entsprechender Umsatz IsControl = 0 und der andere jedoch IsControl = 1. entspricht, für die Zeile, die eine Steuer = 1 Verkauf hat müssen für ihre Num_Of_Customers und multipliziert den Num_of_Customers der gleichen week_of_day wo IsControl = 0.

In aufgeteilt werden Mit anderen Worten skaliere ich Verkäufe für IsControl = 1 zu IsControl = 0. In einer Weise, dass ich die zwei Linien auf einem Liniendiagramm zeigen kann.

Was ist der SSRS-Ausdruck, um das zu tun?

Sales und Num_Of_Customers sind in diesem Fall für IsControl = 0 und IsControl = 1 gleichwertig, aber sie sind normalerweise unterschiedlich.

Antwort

1

Wenn ich die Frage richtig verstehe, sollte der folgende Ausdruck tun, was Sie brauchen.

=IIf(Fields!IsControl.Value = 1, 
    Fields!Sales.Value/Lookup(Fields!week_of_day.Value.ToString() & "0", 
     Fields!week_of_day.Value.ToString() & Fields!IsControl.Value.ToString(), 
     Fields!Num_Of_Customers.Value, 
     "DataSet1"), 
    Fields!Sales.Value*Fields!Num_Of_Customers.Value) 

Wenn IsControl 1, Lookup die Anzahl der Kunden, wo IsControl 0 für das gleiche Datum ist, und teilen Sales von dieser Zahl. Andernfalls multiplizieren Sie Sales mit der Anzahl der Kunden in derselben Zeile.

Wenn Sie nur Verkäufe für die Zeilen müssen, wo IsControl 0 ist, verwenden Sie diese:

=IIf(Fields!IsControl.Value = 1, 
    Fields!Sales.Value/Lookup(Fields!week_of_day.Value.ToString() & "0", 
     Fields!week_of_day.Value.ToString() & Fields!IsControl.Value.ToString(), 
     Fields!Num_Of_Customers.Value, 
     "DataSet1"), 
    Fields!Sales.Value) 

Was immer Sie brauchen, die Lookup werden Sie auf die Reihe bekommen, wo IsControl ist 0. Ziehen Sie den Wert, den Sie benötigen und mach was immer Mathe ist notwendig.

Viel Glück!