• I think you can do this, if you redesign the Template tableCREATE TABLETemplate

    (

    Descr VARCHAR(20),

    E3_Field INT,

    E1_Exp_Level1 VARCHAR(4)

    )

    INSERTTemplate

    SELECT'Admin Fees', 132, '0132' UNION All

    SELECT'Broker fees', 135, '0135' UNION ALL

    SELECT'Legal Fees', 139, '0139'

    UPDATEe

    SETe.SD_GB_End = COALESCE(E3.SD_GB_End, 0),

    e.SD_GB_Start = COALESCE(E3.SD_GB_Start, 0),

    e.TRA_G9 = COALESCE(E1.TRA_G9, 0),

    e.SD_GB_End = COALESCE(E1.TRA_H5, 0),

    e.SD_GB_End = COALESCE(E1.TRA_H77, 0)

    FROMExpense AS e

    LEFT JOIN(

    SELECTt.Descr,

    SUM(x.GB_Field_End) AS SD_GB_End,

    SUM(x.GB_Field) AS SD_GB_Start

    FROMfst_tbl_SD AS x

    INNER JOINTemplate AS t ON t.E3_Field = x.E3_Field

    GROUP BYt.Descr

    ) AS E3 ON E3.Descr = e.Descr

    LEFT JOIN(

    SELECTt.Descr,

    SUM(x.G9_Income_Base) AS TRA_G9,

    SUM(x.H5_Income_FX_GL) AS TRA_H5,

    SUM(x.H77_Gls) AS TRA_H77

    FROMfst_tbl_SD AS x

    INNER JOINTemplate AS t ON t.E1_Exp_Level1 = x.E1_Exp_Level1

    GROUP BYt.Descr

    ) AS E1 ON E1.Descr = e.Descr


    N 56°04'39.16"
    E 12°55'05.25"