您的位置:首页 > 其它

“无法绑定由多个部分组成的标识符 “解决方案

2010-01-24 22:09 686 查看
select D.ID from UFIDA::U9::CBO::SCM::Customer::Customer as C inner join UFIDA::U9::Base::FlexField::ValueSet::DefineValue as D on
D.Code =C.Segment1 and D.ValueSetDef.Code='008'
上面的OQL看似没什么大问题,而且OQL引擎也可以将它翻译过来:
select  A1.[ID] from  CBO_Customer as A  inner join Base_DefineValue as A1 on ((A1.[Code] = A.[Segment1]) and (A2.[Code] = '008'))  left join [Base_ValueSetDef] as A2 on (A1.[ValueSetDef] = A2.[ID])
但是在执行的时候却报错:Error is: 无法绑定由多个部分组成的标识符 "A2.Code"。出现这个错误的原因是没有理解透彻inner join … on… 的使用方式。其实on子句是设置两个表连接的条件,D.ValueSetDef.Code='008' 并不是两个表关联的条件,而应该作为where条件。正确的写法如下:
select D.ID from UFIDA::U9::CBO::SCM::Customer::Customer as C inner join UFIDA::U9::Base::FlexField::ValueSet::DefineValue as D on
D.Code =C.Segment1 where  D.ValueSetDef.Code='008'
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  join 引擎 c