下面是一段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 –
您無法在條件中使用列別名。 –