作者woohyuk49 (Forever H.O.T)
看板Database
标题Re: [INTERBASE]更新资料UPDATE
时间Tue Jun 17 10:51:51 2008
※ 引述《skya0 (a0)》之铭言:
: ※ 引述《skya0 (a0)》之铭言:
: : 您大概是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指令就可完成
真的很感谢您的回覆
我刚刚在试语法 我是发现说
我有些客户会有好几笔资料 都在不同的日期
所以才会发生上一篇我推文的问题吗@@
如果客户在我给的日期区间中 只有单笔消费 执行的资料就正确
因为我昨天後来是将日期区间设定较大 所以资料太多笔罗
我昨天是用您的语法试的
UPDATE 消费表格A SET 卡号=
(SELECT 卡号 FROM 消费表格B WHERE A.客编=B.客编 AND 类型='1')
WHERE A.类型= '2' AND 日期='9706'
所以现在我得像您所说的 整理资料
或是升级到IB7 使用您第一次给的语法才行吗
不好意思 我想再请教一个问题
UPDATE 可以跨表格吗
因为现在的表格A只有消费的卡号跟消费的笔数
而另一个表格B有每个客户所消费购买的明细
如果说 现在我想将表格B中有消费某物品的更改过卡号就好
比如说 客户MARY 在当月有消费过三笔纪录 有三个卡号
但是现在我只想将有消费过物品A的将卡号修改就好
那这样的话 (SELECT 卡号 FROM 消费表格B WHERE A.客编=B.客编 AND 类型='1')
我该如何再加上一个条件呢 消费明细表格B
谢谢您哦 我表达的也不是很好 不好意思
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.120.29.66
※ 编辑: woohyuk49 来自: 59.120.29.66 (06/17 11:53)