ID Name --------- 1 a 1 a 1 a 2 b 2 b 3 c 3 c =========== 有一破表如上所示: 求解: 怎样运算能只剩下一个唯一的ID; 现在是亡羊补牢呀? 粗心的人居然没有设置主键? 所以求解? 在线等待。。。
----------------------------------------------
var msql:string; msql1:string; mlist:tstringlist; i,j:integer; begin mlist:=tstringlist.create; adoconnection.gettablenames(mlist,false);//遍历库中所有的表传入mlist for i:=0 to mlist.count-1 do begin table1.close; table1.tablename:=mlist.strings[i]; table1.open; //打开此表以取得字段名 msql:='select '; msql1:=' group by ' for j:=0 to table1.recordcount-1 do begin msql:=msql+'max('+table1.fields[j].name+'),'; msql1:=msql1+table1.fileds[j].name+','; end; //循环写sql语句 msql:=msql+' into '+新表名+' from '+mlist.strings[i]+msql1; with query_temp do begin close; sql.clear; sql.add(msql); execsql; //望新表里加 end; end; mlist.free; mlist:=nil; end;