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"