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

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'

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值