先请大家看看我的方法:填加一个临时表:TempTable
结构如下:ID_B AllFee Company Currency
NULL 300 Comp1 RMB 程序中的具体做法如下:
1)执行Sql语句,合并记录并插入到TempTable中。
Insert Into TempTable select SUM(Fee) as AllFee, Company, Currency from 表A
Group By Company, Currency.2)通过循环语句,为TempTable中的记录插入不同的 ID_B3)通过循环语句,逐条读取TempTable中的记录,并且:
a) 插入记录到表B中
b) 更新表A中相应记录的ID_B(Company和Currency相同的记录).4)清空TempTable.这样虽然可以实现我需要的功能。但是却出现两个毛病:
1、执行该功能的时候,速度很慢。2、出现一个很奇怪的异常:
测试的记录大概有500条,其中有7条记录在第2步出现异常,“需要更新或者删除的记录不存在”小弟现在急需解决该问题,请高手帮忙!
结构如下:ID_B AllFee Company Currency
NULL 300 Comp1 RMB 程序中的具体做法如下:
1)执行Sql语句,合并记录并插入到TempTable中。
Insert Into TempTable select SUM(Fee) as AllFee, Company, Currency from 表A
Group By Company, Currency.2)通过循环语句,为TempTable中的记录插入不同的 ID_B3)通过循环语句,逐条读取TempTable中的记录,并且:
a) 插入记录到表B中
b) 更新表A中相应记录的ID_B(Company和Currency相同的记录).4)清空TempTable.这样虽然可以实现我需要的功能。但是却出现两个毛病:
1、执行该功能的时候,速度很慢。2、出现一个很奇怪的异常:
测试的记录大概有500条,其中有7条记录在第2步出现异常,“需要更新或者删除的记录不存在”小弟现在急需解决该问题,请高手帮忙!
解决方案 »
- 行列转置加平均值
- TESTA.TABLE1 可以改成:DBO.TABLE1吗?
- 初学者求一简单SQL存储过程
- 查询 用户的产品名称
- distinct问题!请大家帮忙
- 创建sqlserver2000触发器,不管起什么名字,总是说”在数据库中已经存在这个...对象“
- 使用SQL语句从EXCEL中读取相关数据插入到SQL数据库中的问题
- 我的数据库连不上了,请大家帮忙看看是什么原因?急!急!急!
- 关于Ado.无法正常连接windows2003下的Sql Server2000问题
- WinXp 系统中连接SQL SERVER200 时出现未装载 DB-Library 网络通信层
- 怎样查一个表的数据在不在另一个表?
- 批量插入数据?
Update 表A Set ID_B='得到的ID_B' Where Company='comp1' AND Currency='RMB'
当然要循环完成。
select company,currency,fee=sum(fee),id_b='t'+min(id_a) from A group by company,currency
--------------在表a中插入id_b-------------------------------------------
alter table a add id_b varchar(10) null ---------在表a中加id_b字段
update a set id_b=b.id_b from a inner join b on a.company=b.company and a.currency b.currency ---把值插入進去
update A set ID_B = Company + Currency
2.在表B中插入记录
insert into B
select ID_B, sum(Fee), Currency, Company
from A
Group by ID_B, Currency, Company
alter table B drop column id_b
alter table B add id_b int identity(1, 1)--存储过程
create proc p_test
as
delete from binsert into b( AllFee, Currency, Company )
select sum(Fee) as AllFee, Company, Currency
from a
Group By Company, Currencyupdate a
set id_b = b.id_b
from a inner join b on a.company = b.company and a.Currency = b.Currency
GO--测试
select * from a
select * from b