关于sql语句问题 |
尚未結案
|
liangzai
初階會員 發表:77 回覆:91 積分:33 註冊:2004-08-13 發送簡訊給我 |
小弟现在有两个table:
table1(存放员工的部门,姓名,员工编号)
Department Name Employee_No
... ... 12345
... ... ...
table2(存放员工打卡时间,其中Department,Name两个field 为空)
Department Name Employee_No Date Time
12345 ... ...
... ... ... 请教前辈,我现在希望在table2中插入Employee_No在table1中所对应的Department和Name,请问怎样去做?谢谢!
|
Tony-Tang
一般會員 發表:7 回覆:17 積分:9 註冊:2003-10-21 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
|
liangzai
初階會員 發表:77 回覆:91 積分:33 註冊:2004-08-13 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
引言: hi,cashxin2002 我按照你的sql语句的方式书写: update ":hr:gsw2.db" a,":hr:gsw5.db" b set a.Department=b.Department, a.Name=b.Name where a.Employee_No="000"+b.Employee_No; 会出现错误,怎么回事,请指教!您好﹗ :hr:gsw2.db和:hr:gsw5.db是正确的資料表名稱嗎﹖ a.Employee_No=b.Employee_No是關聯資料表的作用﹐不知您在里面加上"000"的用意﹖ 出錯信息是什么﹖ ================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟 |
liangzai
初階會員 發表:77 回覆:91 積分:33 註冊:2004-08-13 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 這句錯誤信息是指在SQL語句中使用到關鍵字了﹒
試試這樣﹕
ADOQuery1.SQL.Add('update [:hr:gsw2.db] a, [:hr:gsw5.db] b set a.Department=b.Department,
a.Name=b.Name where a.Employee_No="000"+b.Employee_No'); =================================
有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗
================================
------
忻晟 |
liangzai
初階會員 發表:77 回覆:91 積分:33 註冊:2004-08-13 發送簡訊給我 |
dm.Table2.Active:=true;
dm.table5.active:=true;
with dm.Query3 do
begin
close;
sql.Clear;
sql.Text:='update [:hr:gsw2.db] a,[:hr:gsw5.db] b set a.Department=b.Department,a.Name=b.Name ';
sql.Append('where a.Employee_No="000" b.Employee_No');
prepare;
execsql;
end; 依然会报错“invalid use of keyword ,token:[?......."
|
liangzai
初階會員 發表:77 回覆:91 積分:33 註冊:2004-08-13 發送簡訊給我 |
sql.Text:='update ":hr:gsw2.db" a set a.Department=(select Department from ":hr:gsw5.db" b ';
sql.Append('where a.Employee_No="000" b.Employee_No),a.Name=(select Name from ":hr:gsw5.db" b');
sql.Append('where a.Employee_No="000" b.Employee_No),a.Type=(select Type from ":hr:gsw5.db" b');
sql.Append('where a.Employee_No="000" b.Employee_No)'); 用这种方式解决问题了,我觉得update的对象table只能为1个,你认为呢?
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi liangzai, In Oracle :
UPDATE TABLE2 T2 SET (T2.DEPARTMENT,T2.NAME) = (SELECT T1.DEPARTMENT,T1.NAME FROM TABLE1 T1 WHERE T1.EMPLOYEE_NO = T2.EMPLOYEE.NO) AND EXISTS (SELECT T1.EMPLOYEE_NO FROM TABLE1 T1 WHERE T1.EMPLOYEE_NO = T2.EMPLOYEE.NO)---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |