|
4#
楼主 |
发表于 2009-7-31 14:57:56
|
只看该作者
谢谢楼上给的启发,已经解决了.要统计动态列,只有在程序中根据列数,把列名循环加入某个变量,然后在SQL语句中使用该变量即可.
我用的是delphi,如下:
strsql:='select bm as 部门'; //SQL语句前半部分
adoqr.Close;
adoqr.SQL.text:='select * from '+tn;
adoqr.Open;
//加入统计字段
for i:=1 to adoqr.FieldCount-1 do
begin
//SQL语句中部分
temp1:=temp1+',sum('+adoqr.Fields[i].FieldName+') as '+adoqr.Fields[i].FieldName;
end;
temp2:=' from (select person.bm,'+tn+'.* from person,'+tn+' where person.gw='+tn+'.name) group by bm' //SQL语句后半部分
//最后组合在一起
strsql:=strsql+temp1+temp2;
用VBA也是一样的,只是语法不同. |
|