Utilizzando IIF in SSRS

voti
0

Sto cercando di calcolare il valore% per ogni gruppo (logica essendo 'Gruppo A Chiamate / Chiamate totali').

Il problema è che per alcuni gruppi che ho bisogno di usare (MAX (Fields! OverallCalls.Value), mentre per altri quelli bisogno di usare (MAX (Fields! TotalCalls.Value). Per questa ragione, ho aggiunto una dichiarazione aggiuntiva IIF in fondo, però, per qualche motivo un errore che dice: 'Troppi argomenti a funzioni pubbliche IsNothing (espressione come oggetto) come booleano'.

=FORMATPERCENT(
       Sum(
IIF(Fields!Group.Value = Dissatisfactions Total,
       Fields!TotalDissatisfactions.Value,
IIF(Fields!Group.Value = RID Total,
       Fields!TotalRidDissatisfactions.Value,
       IIF(
              Fields!Group.Value = CRT OR
              Fields!Group.Value = Escalations
              ,Fields!ComplaintID.Value
              ,IIF(
                           Fields!Group.Value = Calls
                           ,Fields!Calls.Value
                           ,0
                     )
       )
       )
       )  
       ) / IIF(IsNothing(MAX(Fields!OverallCalls.Value), (MAX(Fields!TotalCalls.Value), (MAX(Fields!OverallCalls.Value)
       )
È pubblicato 24/10/2019 alle 11:52
fonte dall'utente
In altre lingue...                            


1 risposte

voti
1

Ci sono errori con la parentesi mancante.

Provate il seguente codice

=FORMATPERCENT(
Sum(
    IIF(Fields!Group.Value = "Dissatisfactions Total",
        Fields!TotalDissatisfactions.Value,
        IIF(Fields!Group.Value = "RID Total",
            Fields!TotalRidDissatisfactions.Value,
            IIF(
            Fields!Group.Value = "CRT" OR Fields!Group.Value = "Escalations",
                Fields!ComplaintID.Value,
                IIF(
                    Fields!Group.Value = "Calls",
                    Fields!Calls.Value,
                    0
                    )
                )
            )
        )  
   ) 
   / 
   IIF(IsNothing(MAX(Fields!OverallCalls.Value)),  
        MAX(Fields!TotalCalls.Value),  
        MAX(Fields!OverallCalls.Value) 
    )
   )

Inoltre per una migliore leggibilità quando si hanno molte dichiarazioni IIF nidificate Vorrei consigli utilizzando l'interruttore come il seguente codice

=FORMATPERCENT(
Sum(
    Switch (
        Fields!Group.Value = "Dissatisfactions Total", Fields!TotalDissatisfactions.Value,
        Fields!Group.Value = "RID Total", Fields!TotalRidDissatisfactions.Value,
        Fields!Group.Value = "CRT" OR Fields!Group.Value = "Escalations", Fields!ComplaintID.Value,
        Fields!Group.Value = "Calls", Fields!Calls.Value,
        True, 0
        )

   / 
   IIF(IsNothing(MAX(Fields!OverallCalls.Value)),  
        MAX(Fields!TotalCalls.Value),  
        MAX(Fields!OverallCalls.Value) 
    )
   )   
Risposto il 24/10/2019 a 12:22
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more