日期:2014-05-17  浏览次数:20547 次

全部分了,求T-SQL语句
tb1

ID  标识  数量  单号
1    A    1000   CN1
2    B     200   CN2
3    B     100   CN1
4    C     200   CN3


怎么根据TB1中的数据在TB2中插入数据

TB2

ID   序列号  单号
1    A00001    CN1
2    A00002    CN1
3    A00003    CN1
...
...
.
按TB1数量插入1000个,然后接着插入B
B00001   CN2
B00002   CN2
... 插入单号为CN2的数量200
..
B00200   CN2

后面继续插入单号为CN1的数量100,但是由于标识相同,要求序列号要延续,

B00201  CN1
B00202  CN1
....
....
B00300  CN1
C00001  CN3
.....
...



序列号的生成规律要求能参照此帖

http://bbs.csdn.net/topics/390536906


不知道我表述清楚了没,求高手回复,谢谢!





 



------解决方案--------------------
--为什么楼主上一帖是无满意结帖呢
if OBJECT_ID('tempdb..#temp', 'u') is not null   drop table #temp;
go
create table #temp( [ID] INT, [标识] varchar(100), [数量] INT, [单号] varchar(100));
insert #temp
select '1','A','1000','CN1' union all
select '2','B','200','CN2' union all
select '3','B','100','CN1' union all
select '4','C','200','CN3' 

CREATE TABLE #tempB(id INT, 序列号   VARCHAR(100), 单号 VARCHAR(100))
--SQL:
;WITH 
cte1 AS(SELECT num = 1 UNION ALL SELECT 1),
cte2 AS(SELECT num = 1 FROM cte1 a, cte1 b),
cte3 AS(SELECT num = 1 FROM cte2 a, cte2 b),
cte4 AS(SELECT num = 1 FROM cte3 a, cte3 b),
cte5 AS(SELECT num = 1 FROM cte4 a, cte4 b),
cteNum as(SELECT num = ROW_NUMBER() OVER(ORDER BY GETDATE()) FROM cte5),