有一个表,表的内容如下:
住院号 姓名 开始日期 结束日期
185316 杨浩 2013/1/10 2013/1/12
192405 张鑫 2013/3/3 2013/3/4
203385 冯贺 2013/6/3 2013/6/4
想生成一个新表如下:
住院号 姓名 开始日期 结束日期 日期
185316 杨浩 2013/1/10 2013/1/12 2013/1/10
185316 杨浩 2013/1/10 2013/1/12 2013/1/11
185316 杨浩 2013/1/10 2013/1/12 2013/1/12
192405 张鑫 2013/3/3 2013/3/4 2013/3/3
192405 张鑫 2013/3/3 2013/3/4 2013/3/4
203385 冯贺 2013/6/3 2013/6/8 2013/6/3
203385 冯贺 2013/6/3 2013/6/8 2013/6/4
203385 冯贺 2013/6/3 2013/6/8 2013/6/5
203385 冯贺 2013/6/3 2013/6/8 2013/6/6
203385 冯贺 2013/6/3 2013/6/8 2013/6/7
203385 冯贺 2013/6/3 2013/6/8 2013/6/8
该怎么做呢
谢谢你的解答,关键是这个表内的行数有几万个呢,怎么用语句批量生成呢
追答/*不好意思,游标我不 会用,能不能直接帮我写个完整的语句。可以直接生成我需要的表的语句呢。谢谢了
追答With TT
As
(
Select 住院号,姓名,开始日期,结束日期,开始日期 As 日期 from T
union all
Select 住院号,姓名,开始日期,结束日期,dateadd(day,1,日期) From TT
Where dateadd(day,1,日期)<=结束日期
)
Select * From TT
Order By 住院号,日期
option (MAXRECURSION 32767)
就这个就可以了
其中dd代表天数, '2014-01-01'代表开始日期 ,'2014-10-01'代表结束日期