SQL Server Management Studio:返回View1中不加入View2的行

时间:2017-02-16 20:42:17

标签: sql sql-server join view

我正在使用以下脚本来连接两个视图,以便我可以计算从view2掉落到view1的行事件#。但是,我还希望看到view1中的行事件,DON' T下面有任​​何view2行事件。

脚本:

Select vp.id, vp.EventName, vp.Unit, vp.Product, vp.StartTime, vp.EndTime, vp.Production, vp.BDP,  count(distinct vl.Name) as NumLCs 
from [V_ProductionEvents] vp 
join [V_LossEvents] vl on vl.Unit = vp.Unit and vl.StartTime >= vp.StartTime and vl.EndTime <= vp.EndTime
where  vp.StartTime > '2/01/2017'
group by vp.id, vp.Unit, vp.StartTime, vp.EndTime, vp.EventName, vp.Product, vp.bdp, vp.Production
order by vp.StartTime desc

对于生产事件开始/结束时间内的每个损失事件,NumLC + = 1 ...是否有人知道我如何查看有0&#34; NumLCs&#34;?

1 个答案:

答案 0 :(得分:0)

使用left join

select 
    vp.id
  , vp.EventName
  , vp.Unit
  , vp.Product
  , vp.StartTime
  , vp.EndTime
  , vp.Production
  , vp.BDP
  , NumLCs = count(distinct vl.Name)
from [V_ProductionEvents] vp 
  left join [V_LossEvents] vl 
     on vl.Unit = vp.Unit 
    and vl.StartTime >= vp.StartTime 
    and vl.EndTime   <= vp.EndTime
where vp.StartTime > '2/01/2017'
group by 
    vp.id
  , vp.Unit
  , vp.StartTime
  , vp.EndTime
  , vp.EventName
  , vp.Product
  , vp.bdp
  , vp.Production
order by vp.StartTime desc