我有以下查询,但是当我传递此别名列名称的引用名称时,它显示无效的列名称我该怎么做
select OM.*,
convert(int,Replace(Ltrim(Replace(left(OM.mstrefc,6), '0', ' ')), ' ', '0')) as partycode,
OI.*,
Ac.AcctName,
Ac.acctaddr,
UN.UnitName
from ordemst OM
join ordeitd OI
on OM.mstCode = OI.ItdCode
join Account Ac
on OM.partycode = Ac.acctcode
left join unitdet UN
on OI.ItdUnit = UN.unitcode and
OI.CompCode = UN.CompCode
where OM.MstCode = 47 and
OM.MstType =79 and
OM.CompCode =117 and
AC.compcode =117 and
OI.Compcode=117
答案 0 :(得分:2)
您不能在join子句中使用select子句中的别名。
column_alias可以在ORDER BY子句中使用,但不能在WHERE,GROUP BY或HAVING子句中使用
并且显然不在加入条款中。
你必须用真实的东西替换别名:
join Account Ac
on convert(int,Replace(Ltrim(Replace(left(OM.mstrefc,6), '0', ' ')), ' ', '0')) = Ac.acctcode