作者skya0 (a0)
看板Database
标题Re: [INTERBASE]更新资料UPDATE
时间Mon Jun 16 22:58:13 2008
※ 引述《skya0 (a0)》之铭言:
: ※ 引述《skya0 (a0)》之铭言:
: : UPDATE TableName A SET 卡号=(SELECT 卡号 FROM TableName B WHERE
: : A.客户编号=B.客户编号 AND 付款类型='1' ROWS 1) WHERE A.付款类型= '2'
: 您大概是IB6或7之前的版本吧 没有ROWS 指令
: UPDATE TableName A SET 卡号=(SELECT DISTINCT 卡号 FROM TableName B WHERE
: A.客户编号=B.客户编号 AND 付款类型='1') WHERE A.付款类型= '2'
: 或
: UPDATE TableName A SET 卡号=(SELECT 卡号 FROM TableName B WHERE
: A.客户编号=B.客户编号 AND 付款类型='1') WHERE A.付款类型= '2'
: 试试
因为Select出来的资料有多笔 所以会出现这样的讯息 试试第二句
SELECT DISTINCT ,只会抓出不同的卡号,
如果每个客户都只有一个独立卡号的话 应该就会ok
如果每个客户有两个以上的卡号 那就要先整理一下了 (我猜你是这样的情形)
ROWS 1 的话 就会只抓第一笔 ,不过你是老旧的IB 没这指令
整理的方法很多 先拷贝所需要的资料到分散到其他 table
在更新所需要的回来
理论上您的需求 光靠SQL指令就可完成
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.133.52.38