sql server 循环插入语句

建议一个临时表,把我想要的数据循环插入进去?----------------临时表createtable#temp(姓名varchar(10)notnull,月份varc... 建议一个临时表,把我想要的数据循环插入进去?
----------------
临时表
create table #temp
(
姓名 varchar(10) not null,
月份 varchar(6) not null,
出勤数 float not null default 0
);
--------------
源数据
table201501
姓名 日期
------------------------
只要某个员工上班了,在与份表里就会插入一条带有日期的记录
现在需要一次性把2014年全年的出勤率汇总到上边我建立的这个临时表里
insert into #temp select 姓名,count(日期) from table201401——table201412
group by 姓名
展开
 我来答
鲜美还清湛灬白桦N
推荐于2016-04-27 · TA获得超过621个赞
知道小有建树答主
回答量:404
采纳率:50%
帮助的人:528万
展开全部
--可以不用循环哦,先建好临时表,和table201401——table201412的表
--下面的代码是把满足table2014%这个条件的表分组统计后插入到临时表
exec sp_MSforeachtable 
@command1="insert into #temp select 姓名,substring('?',13,6), count(日期) 
from ? group by 姓名",
@whereand=" And o.Name in(Select name From sys.objects Where Type='U' And
Name like 'table2014%'
)"

--当然循环也行

Declare @Name Varchar(100)
Declare @sql Varchar(1000)
DECLARE Cur CURSOR FOR 
Select name From sys.objects Where name like 'table2014%'

OPEN Cur
FETCH NEXT FROM Cur INTO  @Name
WHILE @@FETCH_STATUS = 0
BEGIN

Set @sql='insert into #temp select 姓名,right('''+@Name+''',6), count(日期) 
from '+@Name+' group by 姓名'
Exec (@sql)
FETCH NEXT FROM Cur INTO  @Name
END 
CLOSE Cur
DEALLOCATE Cur

select * from #temp
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式