• Having spent some time scratching my head, and as a result of a number of folks looking at this post but with no replies, I am posting the solution.

    =ROUND(SUM(

    IIF(

    SUM(Fields!OperativeCalcPay.Value,"rgJobNumb")=0,

    0,

    IIF(

    (

    Fields!TSK_SORCode.Value="NOACCESS" OR

    Fields!TSK_SORCode.Value="CAR181-R" OR

    Fields!TSK_SORCode.Value="CAR183-R" OR

    Fields!TSK_SORCode.Value="BWK035-R" OR

    Fields!TSK_SORCode.Value="PLU131-R" OR

    Fields!TSK_SORCode.Value="RFR021-R" OR

    Fields!TSK_SORCode.Value="GRD111-R" OR

    Fields!TSK_SORCode.Value="ELE153-R"

    ),

    SUM(Fields!OperativeCalcPay.Value,"Details"),

    IIF(

    Fields!CurrentJobLabourCost.Value < 10,

    ROUND(10 * (Fields!ROUND_OperativeApportionment.Value / 100),2),

    SUM(Fields!OperativeCalcPay.Value,"Details")

    )

    )

    )

    ),2)

    I had to specify the scope of the first IIF to evaluate at the Job level, this then causes the inner logic to operate only on the detail records within the Job scope (by specifying the detail scope). The original query is then wrapped in a SUM to take the values scoped at Job and give me the grand total. A little bit of tidying up is then needed to ensure that the values are rounded to the nearest penny and there are some divides going on.