2014-06-17 7 views
6

Ich erstelle einen Bildungsbericht. Ich habe eine Reihe von Qualitäten, und ich möchte die Anzahl der Klassen A zusammenzufassen - C. So etwas wieSSRS Count IF Mehrere Werte

SUM WHERE Grades IN ('A', 'B', 'C') 

Wie mache ich dies in einem Ausdruck? Kann ich eine SUMME für eine Choose-Anweisung oder etwas tun? Ich habe versucht =SUM(Choose(1, "A", "B", "C")), aber ich konnte es nicht zur Arbeit bekommen.

Antwort

18

Sie benötigen eine Sum Anweisung mit einer bedingten Anweisung zu kombinieren, wie IIf:

=Sum(
    IIf(Fields!Grades.Value = "A" 
      or Fields!Grades.Value = "B" 
      or Fields!Grades.Value = "C" 
     , 1 
     , 0) 
    ) 

Auf diese Weise der Zählung nur im Sum enthalten ist, wenn Grades ist A oder B oder C.

+0

Warum funktioniert das nicht? = SUM (Switch (Fields! Grade.Value = "A", 1, "B", 1, "C", 1)) – jhowe

+0

Ich glaube auch nicht, dass Sie OR in SSRS-Ausdrücken verwenden können, ich werde rot markierte Syntax ... – jhowe

+0

Sie führen nur einen Vergleich in der ersten Klausel des 'Switch' durch. Sie müssen jedes Mal, wenn Sie den Vergleich durchführen, 'Fields! Grade.Value = ... 'einfügen. –

0

Ich denke, Sie müssen 0 durch nichts ersetzen. wie unten,

=Sum(
    IIf(Fields!Grades.Value = "A" 
     or Fields!Grades.Value = "B" 
     or Fields!Grades.Value = "C" 
    ,1 
    ,Nothing) 
) 

Dann sollten Sie gut gehen.