如将以下两个表进行合并?(100分)

  • 主题发起人 主题发起人 jony123
  • 开始时间 开始时间
J

jony123

Unregistered / Unconfirmed
GUEST, unregistred user!
在sql中有aa,bb两个表,如下:
aa bb

类型 总计 类型 金额
1 10 1
2 30 2
1 40 3
3 25
1 15
2 6
现要将aa表中总计一栏的数字按类型汇总,然后加入bb表中,也就是说将aa表中所有类型
1的总计合并到bb表中的类型1的金额中,如此类推,请问如何用sql语句实现


 
遍个程序就解了!
但SQL还不熟,否则...
 
select * from aa
group by col1
 
select * from aa group by 类型
得到分类合计然后 insert into bb !
 
关于xf163的回答,用select * from aa group by 类型 得到的是个临时表,没有表名,
如何将数据加入bb表中呢?我用的语句是
query1.close;
query1.sql.clear;
query1.sql.add('select 类型,sum(总计) as hj from aa group by 类型');
query1.open;
 
insert into bb (select 类型,sum(总计) 金额 from aa group by 类型)
 
update bb
set 金额=
(select sum(总计) from aa group by 类型 where aa.类型=bb.类型)
 
select 类型,sum(总计) as hj from aa group by 类型( order by 类型)
 
insert into bb (select 类型,sum(总计) 金额 from aa group by 类型)
 
insert into bb (select 类型,sum(总计) 金额 from aa group by 类型)
 
bug!
对于bb表中已存在类型,
要查询满足类型的金额总数,你们以为那么简单??
看我的!
 
请问:B表是否是一临时表,也就是说,是否记录数为空,只是将A表中记录插入B表,如是哪末为:
insert into bb(select 类型,sum(总计) as hj from aa group by 类型);;
如果表B记录不为空,则要变一段程序,不简单用sql语句就可以,
 
假设aa表中的类型多于bb表中的类型,
用以下程序
qry.sql.add('
select b.类型,sum(a.合计) 金额 from aa a,bb b where a.类型=b.类型
group by b.类型
');
qry.open;
while not qry.eof do
update bb
set 金额=qry.fieldbyname('金额').asinteger
where 类型=qry.fieldbyname('类型').asinteger;
qry.next;

好像太烦了,我再想象!给你个简单的!!

 
一步:
insert into bb
select distinct 类型 from aa where 类型 not in (select 类型 from bb);
二步:
update bb set bb.金额= tmp.金额 from
(select 类型,sum(总计) 金额 from aa group by 类型) as tmp
where bb.类型=tmp.类型;
 
更正一下:
一步的 insert into bb 应为 insert into bb(类型)
 
多人接受答案了。
 
后退
顶部