Geschachtelte IIF oder SWITCH-Anweisung syntax benötigt, richtig

Kann jemand mir bitte sagen, was ich bin fehlt in dieser Formel in SSRS? Oder noch besser: kann bitte jemand schreiben, diese gleiche Sache in einer GESCHACHTELTEN IIF-syntax?

Switch(
    (Parameters!StartMonth.Value <= 1 And Parameters!EndMonth.Value >= 1), 
     (Code.CalculateFraction(
                             (Fields!retail1.Value -Fields!cost1.Value) , Fields!cost1.Value 
                            ) *100
     ), 
    (Parameters!StartMonth.Value <= 2 And Parameters!EndMonth.Value >= 2),
     (Code.CalculateFraction(
                               (
                                 (Fields!retail1.Value +Fields!retail2.Value)- 
                                 (Fields!cost1.Value + Fields!cost2.Value)
                               ) , 
                             (Fields!cost1.Value + Fields!cost2.Value)
                            ) *100
     )
   )

Dies ist ernst mich verrückt. Der Einfachheit halber habe ich nur 2 Iterationen hier. Ich habe 12 von diesen und alle nächsten Schritt habe ich zu summieren retail1 bis retail12 und Kosten1 bis cost12.

Kann ich nicht bekommen es richtig, für diese beiden in den ersten Platz.

EDIT:

Ich versuche das jetzt und immer noch gibt den Wert in die erste Bedingung

=iif(
        Parameters!StartMonth.Value <= 1 AND Parameters!EndMonth.Value >= 1,
        ReportItems!txtTotal2.Value,
        iif(
        Parameters!StartMonth.Value <= 2 AND Parameters!EndMonth.Value >= 2,
        ReportItems!txtTotal3.Value,
            iif(
            Parameters!StartMonth.Value <= 3 AND Parameters!EndMonth.Value >= 3,
            ReportItems!txtTotal4.Value,
            Nothing
               )
           )
    )

EDIT 2:

HERAUSGEFUNDEN, WAS FALSCH WAR.

Meine ganze Logik falsch war man zu dem Ergebnis, dass ich erwartet wurde. Es war offensichtlich, in meinem Fall, dass alles, was ich benutze, werden es IIF oder switch wird nur die erste Anweisung ausgeführt werden würde, weil es wahr war.

Aber ich hatte zu ändern, die Logik zu kommen zu dem Ergebnis, dass ich wollte.

iif(
        Parameters!EndMonth.Value = 1,
        ReportItems!txtTotal1.Value, 
                  Parameters!EndMonth.Value = 2,
              ReportItems!txtTotal2.Value,
             and so on
            )

Dies ist mein problem gelöst. Danke Jungs ich weiß das zu schätzen.

Sie bekommen eine Fehlermeldung, oder einfach nur falsche Ergebnisse?

InformationsquelleAutor aMazing | 2012-03-27

Schreibe einen Kommentar