0

私は2つの一時テーブル #CoreUtilizationForRole1#RoleID2Details. これらの 2 つの一時テーブルを使用して、3 番目の一時テーブルに値を挿入したいと考えています。以下は両方の一時テーブルのテーブル構造です。

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))

#CoreUtilizationForRole1テーブルでは、レポートを生成して保存しました。#RoleID2Detailsクエリに以下のデータが含まれています:-

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

#RoleID2Detailここで、の各レコードをループし、 からの結合中に 3 番目の一時テーブルにデータを挿入したいと考えています #CoreUtilizationForRole1。実際には、特定の記述された形式のデータが必要です。そのため、要件に従って3番目の一時テーブルにデータを挿入し、単純な選択ステートメントを使用して表示するために、このループが必要です。

3 番目のテーブル構造は次のようになります -

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ます。

4

1 に答える 1

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
于 2013-04-30T06:30:06.483 に答える