求助 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表的主键或能唯一确定一条记录
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);