2013-04-30 50 views
0

我有两个临时表#CoreUtilizationForRole1#RoleID2Details。我想使用这两个临时表将值插入到第三个临时表中。 下面是两个Temp表的结构。循环表中的每个记录并将数据插入到加入SQL中的另一个临时表的临时表中

create table #CoreUtilizationForRole1(roleid int,SupervisorName varchar(50),ImmediateSupervisor varchar(50),UserECode varchar(50),UserName nvarchar(250),Designation varchar(250),TimeSpent float,ActivityName varchar(250)) 

create table #RoleID2Details(UserECode varchar(50),UserName nvarchar(250)) 

in #CoreUtilizationForRole1表我已经生成了一个报告并存储在其中。 #RoleID2Details包含数据,查询中提到如下: -

insert into #RoleID2Details 
    select distinct Userecode,Username from #CoreUtilizationForRole1 where roleid=2 

现在我想通过#RoleID2Detail s分别记录环路以及将数据插入第三临时表,同时从#CoreUtilizationForRole1加入。 实际上,我需要一种特定的描述格式的数据,因此,这种循环是必需的,以便我按照我的要求将数据插入到第三个临时表中,然后使用一个简单的select语句来显示它。

第三个表结构将是 -

create table #ThirdtempTable(roleid int,SupervisorName varchar(50),ImmediateSupervisor varchar(50),UserECode varchar(50),UserName nvarchar(250),Designation varchar(250),TimeSpent float,ActivityName varchar(250)) 

和将数据插入到#ThirdtempTable的逻辑是这样的循环中#RoleID2Details表 -

insert into #ThirdtempTable 
Select A.RoleId,A.SuperVisorName,A.Userecode,A.Username,A.Designation,A.TimeSpent,A.ActivityName 
from #CoreUtilizationForRole1 A 
inner join #RoleID2Details B 
on 
A.SuperVisorName=B.UserName 
where B.UserECode= --First UserECode from #RoleID2Details 

insert into #ThirdtempTable 
Select A.RoleId,A.SuperVisorName,A.Userecode,A.Username,A.Designation,A.TimeSpent,A.ActivityName 
from #CoreUtilizationForRole1 A 
inner join #RoleID2Details B 
on 
A.UserName=B.UserName 
where A.UserECode=--First UserECode from #RoleID2Details 

这个循环的每个记录将去,直到我们提取所有记录从#RoleID2Details表中插入并如上所述插入#ThirdtempTable表中。

回答

2
insert into #your3rdTempTable 
select distinct t1.UserECode,t1.UserName from 
#CoreUtilizationForRole1 t1 join #RoleID2Details t 
on t1.UserECode=t2.UserECode and t1.UserName = t2.UserName 

你可以试试这个方法:

insert into #ThirdtempTable 
Select A.RoleId,A.SuperVisorName,A.Userecode,A.Username,A.Designation,A.TimeSpent,A.ActivityName 
from #CoreUtilizationForRole1 A 
inner join #RoleID2Details B 
on 
A.SuperVisorName=B.UserName 
where B.UserECode=A.UserECode 

insert into #ThirdtempTable 
Select A.RoleId,A.SuperVisorName,A.Userecode,A.Username,A.Designation,A.TimeSpent,A.ActivityName 
from #CoreUtilizationForRole1 A 
inner join #RoleID2Details B 
on 
A.UserName=B.UserName 
where A.UserECode=A.UserECode 
+0

更新了我的问题。我想遍历每个记录,因为我想将数据插入到特定的序列中。 – 2013-04-30 06:43:49

+0

循环通过哪个表? – AnandPhadke 2013-04-30 06:54:36

+0

从#RoleID2Details表中循环每个userecode并插入到#ThirdtempTable中,并在我的问题中提到将数据插入#ThirdtempTable的顺序。 – 2013-04-30 07:01:43

相关问题