我正在尝试对 SQL 中创建的列 (y_prcs_new) 进行左连接,但出现下一个错误:“列 'y_prcs_new' 无法解析”
这是查询:
SELECT
sh.i_rqst,
sh.y_rqst,
sh.c_close_reason,
CASE WHEN sh.y_prcs IS NULL THEN 3
WHEN sh.y_prcs = 1 AND sh.c_close_reason = 5 THEN 3
WHEN (sh.y_prcs IS NOT NULL OR sh.y_prcs != 1) AND sh.c_close_reason != 5 THEN sh.y_prcs
END AS y_prcs_new,
fr.t_close_reason
FROM st_hist sh
LEFT JOIN
(SELECT DISTINCT fr.c_close_reason, fr.t_close_reason, fr.y_prcs
FROM sRsn fr) AS fr
ON sh.c_close_reason = fr.c_close_reason
AND y_prcs_new = fr.y_prcs
你知道怎么解决吗?
您的查询不正确,因为join
语句首先执行,然后select
在查询末尾执行语句,因此连接查询找不到y_prcs_new
。
select
i_rqst,
y_rqst,
c_close_reason,
y_prcs_new,
t_close_reason
from
(
SELECT
i_rqst,
y_rqst,
c_close_reason,
CASE WHEN y_prcs IS NULL THEN 3
WHEN y_prcs = 1 AND c_close_reason = 5 THEN 3
WHEN (y_prcs IS NOT NULL OR y_prcs != 1) AND c_close_reason != 5 THEN y_prcs
END AS y_prcs_new
FROM st_hist
) sh
LEFT JOIN
( SELECT
DISTINCT c_close_reason,
t_close_reason,
y_prcs
FROM sRsn
) fr
ON sh.c_close_reason = fr.c_close_reason
AND sh.y_prcs_new = fr.y_prcs
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句