关于table合并 |
尚未結案
|
liangzai
初階會員 發表:77 回覆:91 積分:33 註冊:2004-08-13 發送簡訊給我 |
请教前辈:
现在有两个table,一个是关于员工每天上下班打卡时间的记录table1(employee_no,current_date,type,start_time,end_time,work_hours),一个是关于员工加班,缺勤等情况的记录table2(employee_no,current_date,overtime_hours,pay_type_text),不知如何能将两个table合并起来,生成一个table3,将每个员工的上下班打卡时间及加班,缺勤等情况综合起来,生成完整的记录。 期待你的指教!希望能具体一些!谢谢!
|
deity
尊榮會員 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
hi,liangzai
这样是不是您的要的 SELECT a.Serial1, a.Serial2, a.Id,b.Name FROM table1 a LEFT OUTER JOIN table2 a ON (a.Id = b.Id) 将表a的全部选出,不论能否在表b找到相匹配的记录 示列如下: 先拉一个TQuery,执行上面代码,然后…… table1(id,Serial1,Serial2) 01 110 9101001 03 111 9101002 02 110 9102002 04 115 9102003 table2(id,name) 01 alex 02 ad 03 de 结果: table3(id name Serial1, Serial2) 01 alex 110 9101001 02 ad 110 9102002 03 de 111 9101002 04 115 9102003 procedure TForm1.Button1Click(Sender: TObject); var i:integer; begin Query1.Open; NewTable.open; Query1.first; for i:=0 to Query1.RecordCount-1 do begin NewTable.Append; NewTable.FieldByName('id').AsString:=Query1.fieldbyname('id').AsString; NewTable.FieldByName('name').AsString:=Query1.fieldbyname('name').AsString; NewTable.FieldByName('Serial1').AsString:=Query1.fieldbyname('Serial1').AsString; NewTable.FieldByName('Serial2').AsString:=Query1.fieldbyname('Serial2').AsString; NewTable.Post; Query1.Next; end; NewTable.Free; query1.Free; end; procedure TForm1.FormCreate(Sender: TObject); begin NewTable:=TTable.Create(self); with NewTable do begin Close; TableName:='e:\Test.db'; with FieldDefs do begin Clear; with AddFieldDef do begin Name := 'id'; DataType := ftString; Size := 2; end; with AddFieldDef do begin Name := 'name'; DataType := ftString; Size := 10; end; with AddFieldDef do begin Name := 'Serial1'; DataType := ftString; Size := 3; end; with AddFieldDef do begin Name := 'Serial2'; DataType := ftString; Size :=10; end; CreateTable; end; end; end;表数据可根据自己的情况自行调整~ 试试看 <>~~~静心养德~~~> 發表人 - |
chris_shieh
高階會員 發表:46 回覆:308 積分:240 註冊:2004-04-26 發送簡訊給我 |
先Create 一個New_Table 欄位
employee_no,current_date,type,start_time,end_time,work_hours, overtime_hours,pay_type_text insert into New_Table select a.*,b.overtime_hours, b.pay_type_text from Table1 a , Table2 b where a.employee_no=b.employee_no and a.current_date=b.current_date @瞭解越多.懂得越少@
|
liangzai
初階會員 發表:77 回覆:91 積分:33 註冊:2004-08-13 發送簡訊給我 |
hi,deity!
首先感谢你的回应!
但是
这分别是table1(记录上下班打卡时间及年假,轮班替换等)和table2(加班及缺勤等)。其中最左边的field:ed是employee_no和current_date的组合,本想以它作为key.
你可以从中看出两个table仅仅用employee_no和current_date作为key还不足以将两个table进行join.
这是希望的table效果,然后再用quickreport作成报表。
这几天一直为这个问题困扰,希望得到你的指教!期待中。。。。谢谢!
|
liangzai
初階會員 發表:77 回覆:91 積分:33 註冊:2004-08-13 發送簡訊給我 |
|
liangzai
初階會員 發表:77 回覆:91 積分:33 註冊:2004-08-13 發送簡訊給我 |
|
liangzai
初階會員 發表:77 回覆:91 積分:33 註冊:2004-08-13 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |