下面是一段SQL代码不起作用:如何使用SELECT ...如在WHERE子句
SELECT bl.regn_id,
RTRIM(LTRIM(dv.dv_id)) + '_' + RTRIM(LTRIM(bl.regn_id)) AS bu_regn,
(SELECT COUNT (em.em_id)
FROM em
LEFT OUTER JOIN bl bl_s ON em.bl_id = bl_s.bl_id
LEFT OUTER JOIN irs_self_cert_em ON em.em_id = irs_self_cert_em.em_id
WHERE dv.dv_id = em.dv_id
AND bl.bl_id = bl_s.bl_id
AND irs_self_cert_em.date_cert_loc >= DATEADD(month, -1, GETDATE())
AND (em.date_last_update_cads >= (select date_last_update_completed FROM ddi_completed WHERE ddi_id='TRA_CADS_EM'))
) AS certified
FROM bl
CROSS JOIN dv
WHERE bl.status = 'A' AND (certified > 0)
我收到错误:“查找错误 - SQL Server数据库错误:无效的列名称'认证'。“
正如你所看到的,我在SELECT语句中使用了一个子查询,并给它起了'认证'这个名字。然后我尝试在WHERE子句中使用该值。
有人可以建议和替代方法来完成这个?
非常感谢, 马特
您不能在'WHERE'子句中使用别名列。我会创建另一个子查询来为该字段添加标准。 – JoeFletch
您将不得不再次包含整个SELECT –
您无法在条件中使用列别名。 –