读书人

informix中where子句的用法

发布时间: 2012-02-16 21:30:36 作者: rapoo

求助 informix中where子句的用法
UPDATE TranRec SET flags = 1
WHERE tsptracenum=hostfile_edate.tlbcon
AND tspdate=hostfile_edate.tlbtin
AND tranamt=hostfile_edate.tlbf02;

hostfile_edate 和 TranRec是两个表。

不知道这个语句有何问题,我检查过了,没有输入错误,但是报错217,谁知道怎么回事啊?

[解决办法]
语法这么写是错误的,update的where只能是当前表的条件,不能是其它表的条件

但是可以这么写,前提是tsptracenum是TranRec表的主键或能唯一确定一条记录

SQL code
UPDATE TranRec SET flags = 1WHERE tsptracenum in(select tsptracenum from hostfile_edate,TranRecTranRec.tsptracenum=hostfile_edate.tlbconAND TranRec.tspdate=hostfile_edate.tlbtinAND TranRec.tranamt=hostfile_edate.tlbf02); 

读书人网 >Informix

热点推荐