2013-03-20 110 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 

現在根據您的要求,以插入查詢傳遞變量...