请高手指导下这条SQL语句该怎么处理?

insert into hwkcrk select t2.fnumber,t2.fname,t5.fname,t6.fname,t4.fname,t1.fbatchno,t1.fqty,0 from icstockbillentry t1
left join t_item t2 on t2.fitemid=t1.fitemid
left join t_stock t5 on t5.fitemid=t1.fdcstockid
left join t_submessage t6 on t6.finterid=(case when t3.ftrantype=1 then t1.fentryselfa0132 when t3.ftrantype=2 then t1.fentryselfa0231 when t3.ftrantype=40 then t1.fentryselfc0123 end)
left join t_measureunit t4 on t4.fmeasureunitid=t1.funitid
left join icstockbill t3 on t3.finterid=t1.finterid
where t3.FTranType in(1,2,3,5,10,40)

报错如下

消息 4104,级别 16,状态 1,第 5 行
无法绑定由多个部分组成的标识符 "t3.ftrantype"。
消息 4104,级别 16,状态 1,第 5 行
无法绑定由多个部分组成的标识符 "t3.ftrantype"。
消息 4104,级别 16,状态 1,第 5 行
无法绑定由多个部分组成的标识符 "t3.ftrantype"。

求助!!

第1个回答  2015-09-08
数据在不同条件时去连接不同字段,这样直接连接有问题,你可以通过变通,取各条件连接的结果的集合来插入
第2个回答  2015-09-08
t3表要放在t6之前关联才行

insert into hwkcrk
select t2.fnumber,t2.fname,t5.fname,t6.fname,t4.fname,t1.fbatchno,t1.fqty,0
from icstockbillentry t1
left join t_item t2 on t2.fitemid=t1.fitemid
left join t_measureunit t4 on t4.fmeasureunitid=t1.funitid
left join icstockbill t3 on t3.finterid=t1.finterid
left join t_stock t5 on t5.fitemid=t1.fdcstockid
left join t_submessage t6 on t6.finterid=
(case when t3.ftrantype=1 then t1.fentryselfa0132
when t3.ftrantype=2 then t1.fentryselfa0231
when t3.ftrantype=40 then t1.fentryselfc0123 end)
where t3.FTranType in(1,2,3,5,10,40)本回答被提问者和网友采纳
相似回答