2013-03-20 108 views
0

我试图从EmployeeMaster检索名称和插入LeaveCarryForwardTemp ..我写此查询。但它返回一个空值..请咨询..SQL JOIN语句检索名称

( 
     @CreatedUserID as nvarchar(9) 
     ,@CalendarYear as numeric(18, 0)  
    ) 
    AS 

    BEGIN 

    Select 

     A.EmployeeID,B.Name as EmpName    
     From HRLeaveCarryForwardTemp A 
     Join HREmployeeMaster B On A.EmployeeID = B.EmployeeID 
     Where A.EmployeeID = B.EmployeeID 

     Delete dbo.HrLeaveCarryForwardTemp 
     Where UserID = @CreatedUserID 

     INSERT INTO [dbo].[HrLeaveCarryForwardTemp] 
      ([UserID] 
      ,[EmployeeID] 
      ,[CalendarYear] 
      ,[LeaveCarryForward] 
      ,[Status] 
      ) 
     Select 
      @CreatedUserID    
      ,[EmployeeID] 
      ,@CalendarYear 
      ,[LeaveCarryForward] 
      ,[Status]   
     From dbo.[HRLeaveCarryForward] 
     Where CalendarYear [email protected] 

    END 
+0

所以,你的SELECT语句,这是从HRLeaveCarryForwardTemp和HREmployeeMaster,是检查,看看是否有EmployeeI D在Temp表中?另外,在这里我没有看到你将EmployeeMaster中的Name值插入到Temp表中的任何地方。选择参考它,但没有做进一步的事情。 – Vinnie 2013-03-20 04:26:22

+0

多数民众赞成在事情..我需要插入名称值在HrLeaveCarryForwardTemp表..但HRLeaveCarryForward没有名称属性.. – user1617943 2013-03-20 05:35:38

回答

0

你是加入HRLeaveCarryForwardTemp与HREmployeeMaster,并从HRLeaveCarryForward表中插入.. ??

+0

是我加入HRLeaveCarryForward与HREmployeeMaster ..检索名称插入到HRLeaveCarryForwardTemp表.. – user1617943 2013-03-20 05:34:01

0

所以,你必须保存的名称或ID在一个变量,并通过变量插入查询, 像下面...

DECLARE @EmpID int 

Select @EmpID = A.EmployeeID 
     From HRLeaveCarryForwardTemp A 
     Join HREmployeeMaster B On A.EmployeeID = B.EmployeeID 
     Where A.EmployeeID = B.EmployeeID 

- 或者,如果你想名字,那么

Declare @EmpName varchar(50) 

Select @EmpName = B.Name 
     From HRLeaveCarryForwardTemp A 
     Join HREmployeeMaster B On A.EmployeeID = B.EmployeeID 
     Where A.EmployeeID = B.EmployeeID 

现在根据您的要求,以插入查询传递变量...