客户需要将表中统计好的数据还原成统计前的原始记录

例如:

ID Name QTYCount
100 Name1 1
101 Name2 2
102 Name3 3
103 Name4 4
104 Name5 5

还原为:

ID Name QTY
100 Name1 1
101 Name2 1
102 Name2 1
103 Name3 1
104 Name3 1
105 Name3 1
106 Name4 1
107 Name4 1
108 Name4 1
109 Name4 1
110 Name5 1
111 Name5 1
112 Name5 1
113 Name5 1
114 Name5 1

原始数据已经找不到,只能通过现有数据反推

--统计结果表
CREATE TABLE [dbo].[CopyTest](
[ID] [int] IDENTITY(100,1) NOT NULL,
[Name] [nvarchar](50) NULL,
[QTY] [float] NULL
) ON [PRIMARY] --将统计结果还原为原始记录表
CREATE TABLE [dbo].[CopyTestResult](
[ID] [int] IDENTITY(100,1) NOT NULL,
[Name] [nvarchar](50) NULL,
[QTY] [float] NULL
) ON [PRIMARY] --生成测试数据
Declare @n bigint
Declare @Sql nvarchar(225)
set @n=1
while @n<6
begin
Set @Sql='Insert into CopyTest Values(''Name'+ convert(varchar(5),@n) +''','+convert(varchar(5),@n)+')'
Exec (@Sql)
set @n=@n+1
End

 由于数据量比较大,而且只是临时的需求,想想游标最合适。

Declare CopyRowByNumber Cursor  For Select * from CopyTest
Open CopyRowByNumber declare @id int
declare @name nvarchar(50)
declare @qty float
declare @allCount int
set @allCount=0
Fetch Next From CopyRowByNumber into @id,@name,@qty
while @@FETCH_STATUS=0
Begin
--根据Qty循环生成数据
while @qty>=1
begin
set @allCount=@allCount+1
insert into CopyTestResult Values(@name,1)
set @qty=@qty-1
end Fetch Next From CopyRowByNumber into @id,@name,@qty End
Close CopyRowByNumber
DEALLOCATE CopyRowByNumber

ok。

最新文章

  1. 怎么在MVC中使用自定义Membership
  2. 【Spring实战】—— 12 AspectJ报错:error at ::0 can&#39;t find referenced pointcut XXX
  3. Masonry小结
  4. Ubuntu 下安装 MySQL Workbench
  5. MSP430 IO 使用
  6. webpy 访问局域网共享资源
  7. LR12.53—第4课:准备Vuser脚本进行负载测试
  8. 【转载】ogre内存管理
  9. Linux系统监视资源与进程管理
  10. Netty4.0学习教程
  11. 半透明panel
  12. Spring 级联属性
  13. 【django之分页器】
  14. 编译原理 #01# 简易词法分析器(js实现)
  15. UITextField只能输入数字NSCharacterSet实现
  16. 【CF1119D】Frets On Fire
  17. 两个序列求前k大和
  18. gcc/g++
  19. centos6.5安装mongodb2.6
  20. APIO 2018 游记

热门文章

  1. 编写高质量代码改善C#程序的157个建议——建议95:避免在构造方法中调用虚成员
  2. 流程控制语句(if、for、while、do while、switch、 break、continue)
  3. c# MSMQ 消息队列
  4. 修改TomCat端口实现多实例
  5. Label下FormattedText中的Span无法使用Binding的解决方法
  6. android之实现底部TabHost
  7. django使用ajax传输数据
  8. SELinux导致无法访问外网,PHP连接MySQL异常Can&#39;t connect to MySQL server、redis程序访问提示Redis server went away的解决方法
  9. Redis分布式锁方案
  10. Starling开源手势库AcheGesture