Re: [INTERBASE]更新資料UPDATE
※ 引述《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)
討論串 (同標題文章)