【问题标题】:SQL difference Calculation from two table or viewsSQL差异从两个表或视图计算
【发布时间】:2013-05-15 05:51:00
【问题描述】:
我有一个主管表,工作日数=5。我还有一个缺席表。现在我从两个表中计算当前天数。如何得到这个。
SupList WorkDays
101 5
102 5
103 5
104 5
105 5
Suplist AbsentDays
101 2
103 1
现在我想得到这个
Suplist PresentDays
101 3
102 5
103 4
104 5
105 5
【问题讨论】:
标签:
sql
join
sql-server-express
except
【解决方案1】:
Select s.Suplist , (s.workDays - isnull(a.absentDays,0)) as PresentDays
from supervisertable s
left join absentTable a
on s.suplist=a.suplist
SQL Fiddle
【解决方案2】:
参考以下查询:
select p.Suplist,(p.WorkDays-a.AbsentDays) as PresentDays
from presentTable p,absentTable a
where p.Suplist=a.Suplist
【解决方案3】:
我认为您需要一个外部连接,以便如果一个人不缺席,那么您也可以为他提供当前天数。
Select s.Suplist , (s.workDays - nvl(a.absentDays,0)) as PresentDays
from supervisortable s
left outer join absentTable a
on s.suplist=a.suplist
【解决方案4】:
请尝试:
select
a.SupList,
a.WorkDays-isnull(b.AbsentDays,0) PresentDays
from
Supervisor a LEFT JOIN Absent b on a.SupList=b.Suplist