Вы получаете сообщение об ошибке, поскольку PAYER_TYPE не является столбцом в Hedge.Details.Если вы действительно хотите использовать PAYER_TYPE, попробуйте следующее:
SELECT
C1.PAYER_TYPE,
CASE
WHEN C1.TYPE = 'Swaption'
THEN
CASE
WHEN C1.PAYER_TYPE = 'FIXED'
THEN C1.PAY_LEG
ELSE C1.REC_LEG
END
ELSE 0
END AS STRIKE
FROM
(
SELECT
CASE
WHEN TYP IN ('Swap', 'Ton')
THEN
CASE
WHEN INDX_PAY = 'FIXED'
THEN 'FIXED'
ELSE 'FLAT'
END
END AS PAYER_TYPE,
TYPE,
PAY_LEG,
REC_LEG
FROM Hedge.Details
) AS C1
Лучшим вариантом может быть простота и не использовать подход подзапроса, как показано ниже:
SELECT
CASE
WHEN TYP IN ('Swap', 'Ton')
THEN
CASE
WHEN INDX_PAY = 'FIXED'
THEN 'FIXED'
ELSE 'FLAT'
END
END AS PAYER_TYPE,
CASE
WHEN TYPE = 'Swaption'
THEN
CASE
WHEN TYP IN ('Swap', 'Ton') AND INDX_PAY = 'FIXED'
THEN PAY_LEG
ELSE REC_LEG
END
ELSE 0
END AS STRIKE
FROM Hedge.Details