小弟初学delphi开发设计,第一次开发数据库软件,现有一难题,请各大富翁踢教,谢谢
问题描述如下:
  在生成上报文件时,我设计程序生成gs200501,js200501,rh200501等五六个access数据库,里面均含有几个一模一样的表,只是名字不同,如gs200501里有gshg200501,gsyh200501(第三和第四个字母是用于区分同一数据库内的不同报表名)
,同样,js200501里也有jshg200501,jsyh200501以此类推。现在,我要从这五六个上报数据库中读取数据,生成新的数据库,如rm200501,里面也要包含rmhg200501,rmyh200501。而且rmhg200501是gshg200501,jshg200501的汇总表,rmyh200501是gsyh200501,jsyh200501的汇总表。
  将gs200501和js200501中的几个表插入到一个数据库rm200501中,问题就变成:一个access数据库里有几张结构一样的表,汇总到一张新表?
  我参考了http://www.delphibbs.com/delphibbs/dispq.asp?lid=2460931的例子,select id sum(salary) from
(select id1 as id,salary1 as salary from [GZ200301.mdb].[table1] 
union
select id2 as id,salary2 as salary from [GZ200302.mdb].[table1]
union
select id3 as id,salary3 as salary from [GZ200303.mdb].[table1]
.....)
group by id如果用于我的程序,该如何改呢?忘记说明了,每张表的字段里都有“编号”(自动增加)、“原始指标”,“上期”,“本期”,“增长率”,我只要将上期和本期的数据汇总相加。

解决方案 »

  1.   

    select 编号, 原始指标, 上期, 本期, 增长率=(本期-上期)/上期*100 from
    (select 编号, max(原始指标) as 原始指标, sum(上期) as 上期, sum(本期) as 本期 from [GZ200301.mdb].[table1] group by 编号) a
    union
    select 编号, 原始指标, 上期, 本期, 增长率=(本期-上期)/上期*100 from
    (select 编号, max(原始指标) as 原始指标, sum(上期) as 上期, sum(本期) as 本期 from 
    [GZ200302.mdb].[table1] group by 编号) b
    union
    select 编号, 原始指标, 上期, 本期, 增长率=(本期-上期)/上期*100 from
    (select 编号, max(原始指标) as 原始指标, sum(上期) as 上期, sum(本期) as 本期 from 
    [GZ200303.mdb].[table1] group by 编号) c
    .....