Подзапрос с указанием регистра

SELECT
A.MARKETING_PLAN,
A.TERM,
A.TIER
CASE WHEN A.TERM<=60 THEN 'ST' ELSE 'LT' end as TERM_2
FROM ABC A;

Я хочу написать следующую инструкцию с использованием поля TERM_2 (имеет 2 подмножества:LT и ST).

СЛУЧАЙ, КОГДА TERM_2=LT и TIER=5 THEN 5.49 Иначе 'NULL' END AS BU

Я не могу использовать приведенный выше оператор case, так как TERM_2 только что создан. Я думаю, что мне нужно использовать подзапрос, и я пробовал много способов, но он не работает. Пожалуйста, посмотрите на мой код и помогите мне решить проблему. Спасибо заранее.

1 ответ

Так как a.bu зависит от стоимости a.term_2 а также a.tierкосвенно зависит от a.term поле. Так что вам просто нужно проверить, a.term больше 60 (a.term_2 равно LT если a.term больше 60).

SELECT
  a.marketing_plan,
  a.term,
  a.tier,
  CASE WHEN a.term<=60 THEN 'ST' ELSE 'LT' END AS term_2,
  CASE WHEN a.term>60 AND a.tier=5 THEN 5.49 ELSE NULL END AS bu
FROM ABC a;
Другие вопросы по тегам