如何用SQL语句或存储过程对一个数据表实现这样的功能,请各位高手指点!

baixp123 2004-01-15 05:23:12
有数据表sk_b中内容如下
id company reday remoney type lib
1 a 2003-1-1 1000 银行   a1
2 a 2003-1-1 2000 银行   a1
3 b 2003-1-1 1500 承兑汇款  b1
4 b 2003-1-1 1500 承兑汇款  b1
如何实现在company、reday、type、lib相同的情况下把remoney加起来使之成为一条记录,并删除相加的记录,即结果如下:
id company reday remoney type lib
1 a 2003-1-1 3000 银行   a1
3 b 2003-1-1 3000 承兑汇款  b1


...全文
37 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hthunter 2004-01-15
  • 打赏
  • 举报
回复
不应group by id的,我来改进一下:

select
sum(remoney) as remoney,
min(id) as id, company, reday, type, lib
into #temp
from sk_b
group by company, reday, type, lib

delete from sk_b where (id not in(select id from #temp)) --不必所有的都删除

-- 以下这段改自sql server联机帮助的例子,不知道有没有改错,楼主调试一下,呵呵
update sk_b
set company = t2.company, reday = t2.reday, type = t2.type, lib = t2.lib
from sk_b t1, #temp t2
where t1.id = t2.id

drop table #temp
lxl 2004-01-15
  • 打赏
  • 举报
回复
呵呵,要改一下
select
sum(remoney) as remoney,
id , company , reday , ,type ,lib into #temp from sk_b
group by id , company , reday , ,type ,lib
delete from sk_b
insert into sk_b select * From #temp
drop table #temp
nhdj 2004-01-15
  • 打赏
  • 举报
回复

select company,reday,type,lib,sum(remoney) as summoney from sk_b
group by company,reday,type,lib
zzh26 2004-01-15
  • 打赏
  • 举报
回复
select sum(remoney) as remoney1,company,reday,type,lib from sk_b group by company,reday,type,lib
lxl 2004-01-15
  • 打赏
  • 举报
回复
insert
sum(remoney) as remoney,
id , company , reday , ,type ,lib into #temp from sk_b
group by id , company , reday , ,type ,lib
delete from sk_b
insert into sk_b select * From #temp
drop table #temp


pressman 2004-01-15
  • 打赏
  • 举报
回复
呵呵,新年快乐!

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧