Not sure about the title of your post as there is no CTE in the code you have shared.
A stored procedure with parameters looks to be a good solution e.g. (NB untested)
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE sp_UploadTrans
@tran1 varchar(30),
@tran2 varchar(30)
AS
BEGIN
SET NOCOUNT ON;
UPDATE L
SET L.TOT_ACT_INT = L.TOT_ACT_INT + LT.AMOUNTSUN
FROM LOANS L
INNER JOIN
(
SELECT IDNO,ID_CODE,TRANS_TYPE, SUM(AMOUNT) AS AMOUNTSUN
FROM LOAN_TRANS LT
GROUP BY IDNO,ID_CODE,TRANS_TYPE
) LT ON L.IDNO=LT.IDNO AND L.LOANUMBER=LT.ID_CODE
WHERE LT.TRANS_TYPE= @tran1
UPDATE L
SET L.TOT_ACT_PRIN = L.TOT_ACT_PRIN + LT.AMOUNTSUN
FROM LOANS L
INNER JOIN
(
SELECT IDNO,ID_CODE,TRANS_TYPE, SUM(AMOUNT) AS AMOUNTSUN
FROM LOAN_TRANS LT
GROUP BY IDNO,ID_CODE,TRANS_TYPE
) LT ON L.IDNO=LT.IDNO AND L.LOANUMBER=LT.ID_CODE
WHERE LT.TRANS_TYPE= @tran2
END
GO
which I
think can be rationalised down to
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE sp_UploadTrans
@tran1 varchar(30),
@tran2 varchar(30)
AS
BEGIN
SET NOCOUNT ON;
UPDATE L
SET L.TOT_ACT_INT = case when LT.TRANS_TYPE= @tran1 THEN L.TOT_ACT_INT + LT.AMOUNTSUN ELSE L.TOT_ACT_INT END,
L.TOT_ACT_PRIN = CASE WHEN LT.TRANS_TYPE= @tran2 THEN L.TOT_ACT_PRIN + LT.AMOUNTSUN ELSE L.TOT_ACT_PRINT END
FROM LOANS L
INNER JOIN
(
SELECT IDNO,ID_CODE,TRANS_TYPE, SUM(AMOUNT) AS AMOUNTSUN
FROM LOAN_TRANS LT
GROUP BY IDNO,ID_CODE,TRANS_TYPE
) LT ON L.IDNO=LT.IDNO AND L.LOANUMBER=LT.ID_CODE
END
GO
CAVEAT - I have not tested any of this (but it's the only solution offered after 3 days so worth a look at least)
[EDIT] This article might prove useful:
Sql Server - How To Write a Stored Procedure in SQL Server[
^]