2016-07-11 30 views
0

不工作我有兩個表更新與選定的預期

首先表

create table ApprovedLeave(
Username varchar(100), 
FromDate date, 
ToDate date, 
type varchar(100), 
address varchar(1000), 
contactNo varchar(20), 
NoofWorkingDays int, 
); 

二表

create table EMPLOYEE(
FName varchar(100), 
LName varchar(200), 
Username varchar(100), 
NoOfDaysRemaining int, 
constraint emp1 primary key(Username)); 

一旦離開被批准,我想用這樣的邏輯來更新:

NoOfDaysRemaining = NoOfDaysRemaining- NoofWorkingDays

到目前爲止我沒有執行上述操作。

create Procedure UpdateNoOfDays2 
    AS 
BEGIN 
update le 
    set NoOfDaysRemaining = al.sum_NoofWorkingDays 
    from EMPLOYEE le join 
     (select UserName, sum(NoofWorkingDays) as sum_NoofWorkingDays 
      from ApprovedLeave 
      group by UserName 
     ) al 
     on le.UserName = al.UserName 
     End 

我該如何添加這個邏輯?

+0

Waht是個問題嗎? –

+0

使用'LIKE',而不是'='來比較varchars? –

+0

這與C#或ASP .NET無關。 –

回答

2

你的問題是缺少一個問題,但在此基礎上:

NoOfDaysRemaining = NoOfDaysRemaining- NoofWorkingDays

你想要嗎? SET NoOfDaysRemaining = NoOfDaysRemaining - al.sum_NoofWorkingDays

UPDATE le 
SET NoOfDaysRemaining = NoOfDaysRemaining - al.sum_NoofWorkingDays 
FROM EMPLOYEE le 
INNER JOIN 
     (SELECT UserName, sum(NoofWorkingDays) as sum_NoofWorkingDays 
      FROM  ApprovedLeave 
      GROUP BY UserName 
     ) al ON le.UserName = al.UserName 
+0

@Omesh沒問題 - 我還編輯了你的問題來澄清你問的問題。確保你將來明確地輸入一個問題。您的帖子將會更好地被接收,並且讓您更容易理解問題。 :) –

+0

非常感謝您的幫助。 – Omesh