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 姓名 展开
----------------
临时表
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 姓名 展开
1个回答
展开全部
--可以不用循环哦,先建好临时表,和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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询