Вы не можете ссылаться на newAction2 в операторе соединения. Попробуйте повторить регистр в соединении, например:
select
t2.Sourceid
,t1.actionCode
,t3.ActionID
CASE
WHEN t1.actionCode = 'R' THEN 'N'
END AS newAction2
from tblSource t2
right join tblX t1
on t1.SourceName= t2.SourceName
right join lkuActionCode t3
on t3.actioncode = CASE
WHEN t1.actionCode = 'R' THEN 'N'
END
Хотите ли вы, чтобы код действия, не являющийся R, проходил без изменений? Если так:
select
t2.Sourceid
,t1.actionCode
,t3.ActionID
CASE
WHEN t1.actionCode = 'R' THEN 'N'
ELSE t1.actionCode
END AS newAction2
from tblSource t2
right join tblX t1
on t1.SourceName= t2.SourceName
right join lkuActionCode t3
on t3.actioncode = CASE
WHEN t1.actionCode = 'R' THEN 'N'
ELSE t1.actionCode
END
Вы также можете использовать подзапрос, чтобы сделать оператор case только один раз:
select
t2.Sourceid
,t1.actionCode
,t3.ActionID
,fixedActionCode.actionCode
from tblSource t2
right join tblX t1
on t1.SourceName= t2.SourceName
right join (
SELECT
CASE
WHEN t1.actionCode = 'R' THEN 'N'
ELSE t1.actionCode
END as actionCode
,otherField1
,otherField2
FROM lkuActionCode
) as fixedActionCode
on t3.actioncode = fixedActionCode.actionCode