【问题标题】: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
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-08-30
          • 1970-01-01
          • 1970-01-01
          • 2021-05-27
          • 1970-01-01
          • 2013-08-20
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多